blacklight_allmaps 0.1.0 → 0.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.
- checksums.yaml +4 -4
- data/README.md +38 -24
- data/Rakefile +2 -1
- data/app/assets/javascripts/blacklight/allmaps/blacklight-allmaps.esm.js +26776 -0
- data/app/assets/javascripts/blacklight/allmaps/blacklight-allmaps.esm.js.map +1 -0
- data/app/assets/javascripts/blacklight/allmaps/blacklight-allmaps.js +26783 -0
- data/app/assets/javascripts/blacklight/allmaps/blacklight-allmaps.js.map +1 -0
- data/app/assets/stylesheets/blacklight/allmaps/base.scss +9 -0
- data/app/javascript/blacklight/allmaps/index.js +11 -0
- data/app/javascript/blacklight/allmaps/initialize_blacklight_map.js +44 -0
- data/app/javascript/blacklight/allmaps/initialize_geoblacklight_map.js +53 -0
- data/app/javascript/blacklight/allmaps/leaflet_layer_opacity.js +69 -0
- data/app/views/allmaps/show/_blacklight.html.erb +1 -211
- data/app/views/allmaps/show/_geoblacklight.html.erb +1 -45
- data/app/views/catalog/_blacklight_allmaps.html.erb +5 -0
- data/app/views/catalog/_show_allmaps_tabbed_viewer_container.html.erb +53 -0
- data/db/migrate/{20240307155110_create_solr_document_sidecars.rb → 20240307155110_create_solr_document_sidecar_allmaps.rb} +1 -1
- data/lib/blacklight/allmaps/tasks/index.rake +53 -4
- data/lib/blacklight/allmaps/version.rb +10 -1
- data/lib/blacklight/allmaps.rb +1 -0
- data/lib/generators/blacklight/allmaps/config_generator.rb +67 -5
- metadata +20 -13
- data/app/assets/stylesheets/blacklight_allmaps/application.css +0 -15
- data/app/javascripts/map_controller.js +0 -39
- data/app/views/catalog/_show_default_viewer_container.html.erb +0 -52
- data/app/views/catalog/_show_main_content.html.erb +0 -58
@@ -16,31 +16,63 @@ module Blacklight
|
|
16
16
|
copy_file "manifest.js", "app/assets/config/manifest.js", force: true
|
17
17
|
end
|
18
18
|
|
19
|
+
def add_assets_initialier
|
20
|
+
append_to_file "config/initializers/assets.rb" do
|
21
|
+
"
|
22
|
+
# Blacklight Allmaps
|
23
|
+
Rails.application.config.assets.paths << Rails.root.join('vendor', 'assets', 'images')
|
24
|
+
Rails.application.config.assets.precompile += %w( blacklight/allmaps/allmaps-logo.svg )"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
19
28
|
def copy_rake_tasks
|
20
29
|
append_to_file "Rakefile", "require 'blacklight/allmaps/rake_task'\n"
|
21
30
|
end
|
22
31
|
|
23
32
|
def prioritize_blacklight_allmaps_views
|
24
|
-
inject_into_file "config/application.rb", "\nrequire \"blacklight/allmaps/engine\"\n",
|
25
|
-
inject_into_file "config/application.rb", "\
|
33
|
+
inject_into_file "config/application.rb", "\nrequire \"blacklight/allmaps/engine\"\n", before: "# Require the gems listed in Gemfile"
|
34
|
+
inject_into_file "config/application.rb", "\n config.railties_order = [Blacklight::Allmaps::Engine, :main_app, :all]\n", after: "class Application < Rails::Application\n"
|
26
35
|
end
|
27
36
|
|
28
37
|
def add_importmap_pins
|
29
38
|
append_to_file "config/importmap.rb" do
|
30
39
|
<<~CONTENT
|
31
|
-
pin "leaflet"
|
32
|
-
pin
|
40
|
+
pin "leaflet", to: "https://cdn.jsdelivr.net/npm/leaflet@1.9.4/dist/leaflet.js", preload: true
|
41
|
+
pin "leaflet-fullscreen", to: "https://cdn.jsdelivr.net/npm/leaflet-fullscreen@1.0.2/dist/Leaflet.fullscreen.min.js", preload: true
|
42
|
+
pin "@allmaps/leaflet", to: "https://cdn.jsdelivr.net/npm/@allmaps/leaflet/dist/bundled/allmaps-leaflet-1.9.umd.js", preload: true
|
33
43
|
CONTENT
|
34
44
|
end
|
35
45
|
end
|
36
46
|
|
47
|
+
def add_javascript
|
48
|
+
inject_into_file "app/assets/javascripts/application.js", after: "//= require blacklight/blacklight" do
|
49
|
+
"\n
|
50
|
+
// Required by Blacklight::Allmaps
|
51
|
+
//= require blacklight/allmaps/blacklight-allmaps"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def add_bl_stylesheets
|
56
|
+
return unless ENV["LIGHT"] == "blacklight"
|
57
|
+
append_to_file "app/assets/stylesheets/blacklight.scss" do
|
58
|
+
"@import 'blacklight/allmaps/base';"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def add_gbl_stylesheets
|
63
|
+
return unless ENV["LIGHT"] == "geoblacklight"
|
64
|
+
append_to_file "app/assets/stylesheets/application.scss" do
|
65
|
+
"@import 'blacklight/allmaps/base';"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
37
69
|
def set_active_job_config
|
38
70
|
inject_into_file "config/environments/development.rb", " config.active_job.queue_adapter = :inline\n", after: "Rails.application.configure do\n"
|
39
71
|
end
|
40
72
|
|
41
73
|
def add_geoblacklight
|
42
74
|
return unless ENV["LIGHT"] == "geoblacklight"
|
43
|
-
append_to_file "Gemfile", '"geoblacklight", "4.
|
75
|
+
append_to_file "Gemfile", '"geoblacklight", "~> 4.4"'
|
44
76
|
end
|
45
77
|
|
46
78
|
def include_blacklight_allmaps_solrdocument
|
@@ -49,6 +81,36 @@ module Blacklight
|
|
49
81
|
"\n include Blacklight::Allmaps::SolrDocument"
|
50
82
|
end
|
51
83
|
end
|
84
|
+
|
85
|
+
def add_gbl_tabbed_viewer
|
86
|
+
return unless ENV["LIGHT"] == "geoblacklight"
|
87
|
+
# Use the tabbed viewer
|
88
|
+
inject_into_file "app/controllers/catalog_controller.rb", after: "config.show.partials << \"show_default_viewer_container\"" do
|
89
|
+
"\n
|
90
|
+
# Blacklight::Allmaps Tabbed Viewer
|
91
|
+
config.show.partials << \"show_allmaps_tabbed_viewer_container\""
|
92
|
+
end
|
93
|
+
|
94
|
+
# Remove the default viewer
|
95
|
+
gsub_file("app/controllers/catalog_controller.rb", "config.show.partials << \"show_default_viewer_container\"", "#config.show.partials << \"show_default_viewer_container\"")
|
96
|
+
end
|
97
|
+
|
98
|
+
def add_bl_allmaps_viewer
|
99
|
+
return unless ENV["LIGHT"] == "blacklight"
|
100
|
+
# Use the allmaps viewer
|
101
|
+
inject_into_file "app/controllers/catalog_controller.rb", after: "#config.show.thumbnail_field = 'thumbnail_path_ss'" do
|
102
|
+
"\n
|
103
|
+
# Blacklight::Allmaps Viewer
|
104
|
+
config.show.partials.insert(1, :blacklight_allmaps)"
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def add_bl_georeferenced_facet
|
109
|
+
return unless ENV["LIGHT"] == "blacklight"
|
110
|
+
inject_into_file "app/controllers/catalog_controller.rb", after: "config.add_facet_field 'subject_era_ssim', label: 'Era'" do
|
111
|
+
"\n config.add_facet_field 'bl_georeferenced_bsi', label: 'Allmaps Georeferenced'"
|
112
|
+
end
|
113
|
+
end
|
52
114
|
end
|
53
115
|
end
|
54
116
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blacklight_allmaps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Larson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: blacklight
|
@@ -34,16 +34,16 @@ dependencies:
|
|
34
34
|
name: httparty
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "
|
37
|
+
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '0'
|
39
|
+
version: '0.20'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- - "
|
44
|
+
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '0'
|
46
|
+
version: '0.20'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: solr_wrapper
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,7 +156,7 @@ dependencies:
|
|
156
156
|
- - ">="
|
157
157
|
- !ruby/object:Gem::Version
|
158
158
|
version: '0'
|
159
|
-
description: Description of
|
159
|
+
description: Description of Blacklight::Allmaps
|
160
160
|
email:
|
161
161
|
- ewlarson@gmail.com
|
162
162
|
executables: []
|
@@ -171,10 +171,17 @@ files:
|
|
171
171
|
- app/assets/images/blacklight/allmaps/blacklight-logo.png
|
172
172
|
- app/assets/images/blacklight/allmaps/geoblacklight-logo.png
|
173
173
|
- app/assets/images/blacklight/allmaps/logo.svg
|
174
|
-
- app/assets/
|
174
|
+
- app/assets/javascripts/blacklight/allmaps/blacklight-allmaps.esm.js
|
175
|
+
- app/assets/javascripts/blacklight/allmaps/blacklight-allmaps.esm.js.map
|
176
|
+
- app/assets/javascripts/blacklight/allmaps/blacklight-allmaps.js
|
177
|
+
- app/assets/javascripts/blacklight/allmaps/blacklight-allmaps.js.map
|
178
|
+
- app/assets/stylesheets/blacklight/allmaps/base.scss
|
175
179
|
- app/controllers/blacklight/allmaps/application_controller.rb
|
176
180
|
- app/helpers/blacklight/allmaps/application_helper.rb
|
177
|
-
- app/
|
181
|
+
- app/javascript/blacklight/allmaps/index.js
|
182
|
+
- app/javascript/blacklight/allmaps/initialize_blacklight_map.js
|
183
|
+
- app/javascript/blacklight/allmaps/initialize_geoblacklight_map.js
|
184
|
+
- app/javascript/blacklight/allmaps/leaflet_layer_opacity.js
|
178
185
|
- app/jobs/blacklight/allmaps/application_job.rb
|
179
186
|
- app/jobs/blacklight/allmaps/store_sidecar_annotation.rb
|
180
187
|
- app/mailers/blacklight/allmaps/application_mailer.rb
|
@@ -184,13 +191,13 @@ files:
|
|
184
191
|
- app/views/allmaps/show/_blacklight.html.erb
|
185
192
|
- app/views/allmaps/show/_geoblacklight.html.erb
|
186
193
|
- app/views/allmaps/sidebar/_allmaps.html.erb
|
187
|
-
- app/views/catalog/
|
188
|
-
- app/views/catalog/
|
194
|
+
- app/views/catalog/_blacklight_allmaps.html.erb
|
195
|
+
- app/views/catalog/_show_allmaps_tabbed_viewer_container.html.erb
|
189
196
|
- app/views/catalog/_show_sidebar.html.erb
|
190
197
|
- app/views/catalog/_show_sidebar_blacklight.html.erb
|
191
198
|
- app/views/catalog/_show_sidebar_geoblacklight.html.erb
|
192
199
|
- config/routes.rb
|
193
|
-
- db/migrate/
|
200
|
+
- db/migrate/20240307155110_create_solr_document_sidecar_allmaps.rb
|
194
201
|
- lib/blacklight/allmaps.rb
|
195
202
|
- lib/blacklight/allmaps/engine.rb
|
196
203
|
- lib/blacklight/allmaps/rake_task.rb
|
@@ -225,5 +232,5 @@ requirements: []
|
|
225
232
|
rubygems_version: 3.4.21
|
226
233
|
signing_key:
|
227
234
|
specification_version: 4
|
228
|
-
summary: Blacklight
|
235
|
+
summary: Blacklight::Allmaps plugin
|
229
236
|
test_files: []
|
@@ -1,15 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
-
* listed below.
|
4
|
-
*
|
5
|
-
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
-
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
|
7
|
-
*
|
8
|
-
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
9
|
-
* compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
|
10
|
-
* files in this directory. Styles in this file should be added after the last require_* statement.
|
11
|
-
* It is generally better to create a new file per style scope.
|
12
|
-
*
|
13
|
-
*= require_tree .
|
14
|
-
*= require_self
|
15
|
-
*/
|
@@ -1,39 +0,0 @@
|
|
1
|
-
// map_controller.js
|
2
|
-
import { Controller } from "@hotwired/stimulus"
|
3
|
-
import L from 'leaflet'
|
4
|
-
import { WarpedMapLayer } from '@allmaps/leaflet'
|
5
|
-
|
6
|
-
export default class extends Controller {
|
7
|
-
static targets = [ "placeholder" ]
|
8
|
-
|
9
|
-
connect(){
|
10
|
-
|
11
|
-
console.log("Map Controller Connected");
|
12
|
-
console.log(this.element);
|
13
|
-
|
14
|
-
// Grok: Allmaps annotation for center and zoom level?
|
15
|
-
this.map = L.map('allmaps-map', {
|
16
|
-
center: [43.063518, -89.3906863],
|
17
|
-
zoom: 10,
|
18
|
-
zoomAnimationThreshold: 1
|
19
|
-
})
|
20
|
-
|
21
|
-
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
22
|
-
maxZoom: 18,
|
23
|
-
attribution: '© <a href=https://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors'
|
24
|
-
}).addTo(this.map)
|
25
|
-
|
26
|
-
const annotationUrl = 'https://annotations.allmaps.org/manifests/c2f9fc8490151424'
|
27
|
-
const warpedMapLayer = new WarpedMapLayer(annotationUrl)
|
28
|
-
.addTo(this.map)
|
29
|
-
|
30
|
-
const bounds = warpedMapLayer.getBounds();
|
31
|
-
this.map.fitBounds(bounds, {
|
32
|
-
padding
|
33
|
-
});
|
34
|
-
}
|
35
|
-
|
36
|
-
disconnect(){
|
37
|
-
this.map.remove()
|
38
|
-
}
|
39
|
-
}
|
@@ -1,52 +0,0 @@
|
|
1
|
-
<% document ||= @document %>
|
2
|
-
<div class='row'>
|
3
|
-
<div id='viewer-container' class="col-md-12">
|
4
|
-
|
5
|
-
<span class="sr-only">Georeferenced: <%= document.sidecar_allmaps.georeferenced? %></span>
|
6
|
-
|
7
|
-
<ul class="nav nav-tabs mt-3" id="myTab" role="tablist">
|
8
|
-
<li class="nav-item" role="presentation">
|
9
|
-
<button class="nav-link active" id="item-viewer" data-toggle="tab" data-target="#item-viewer-tab" type="button" role="tab" aria-controls="home" aria-selected="true">Item Viewer</button>
|
10
|
-
</li>
|
11
|
-
<% if document.sidecar_allmaps.georeferenced? %>
|
12
|
-
<li class="nav-item" role="presentation">
|
13
|
-
<button class="nav-link" id="georeferenced-viewer" data-toggle="tab" data-target="#georeferenced-tab" type="button" role="tab" aria-controls="profile" aria-selected="false">Georeferenced Map</button>
|
14
|
-
</li>
|
15
|
-
<% end %>
|
16
|
-
</ul>
|
17
|
-
|
18
|
-
<div class="tab-content mt-3">
|
19
|
-
<div class="tab-pane fade show active" id="item-viewer-tab" role="tabpanel" aria-labelledby="item-viewer-tab">
|
20
|
-
<% if show_help_text?('viewer_protocol', document.viewer_protocol) %>
|
21
|
-
<%= render_help_text_entry('viewer_protocol', document.viewer_protocol) %>
|
22
|
-
<% end %>
|
23
|
-
|
24
|
-
<% if document.item_viewer.index_map %>
|
25
|
-
<div class="index-map-legend">
|
26
|
-
<div class="index-map-legend-info">
|
27
|
-
<span class="index-map-legend-default"></span>
|
28
|
-
<p><span class="sr-only">Green tile indicates </span>Map held by collection</p>
|
29
|
-
</div>
|
30
|
-
<div class="index-map-legend-info">
|
31
|
-
<span class="index-map-legend-unavailable"></span>
|
32
|
-
<p><span class="sr-only">Yellow tile indicates </span>Map not held by collection</p>
|
33
|
-
</div>
|
34
|
-
<div class="index-map-legend-info">
|
35
|
-
<span class="index-map-legend-selected"></span>
|
36
|
-
<p><span class="sr-only">Blue tile indicates </span>Selected map tile</p>
|
37
|
-
</div>
|
38
|
-
</div>
|
39
|
-
<% end %>
|
40
|
-
|
41
|
-
<%= content_tag :div, id: 'map', aria: { label: t('geoblacklight.map.label') }, data: { map: 'item', protocol: document.viewer_protocol.camelize, url: document.viewer_endpoint, 'layer-id' => document.wxs_identifier, 'map-geom' => document.geometry.geojson, 'catalog-path'=> search_catalog_path, available: document_available?, inspect: show_attribute_table?, basemap: geoblacklight_basemap, leaflet_options: leaflet_options } do %>
|
42
|
-
<% end %>
|
43
|
-
</div>
|
44
|
-
|
45
|
-
<% if document.sidecar_allmaps.georeferenced? %>
|
46
|
-
<div class="tab-pane fade" id="georeferenced-tab" role="tabpanel" aria-labelledby="georeferenced-tab">
|
47
|
-
<%= render partial: 'allmaps/show/geoblacklight', locals: { document: document } %>
|
48
|
-
</div>
|
49
|
-
<% end %>
|
50
|
-
</div>
|
51
|
-
</div>
|
52
|
-
</div>
|
@@ -1,58 +0,0 @@
|
|
1
|
-
<% if Blacklight::VERSION.to_i > 8 %>
|
2
|
-
<%= render blacklight_config.track_search_session.item_pagination_component.new(search_context: @search_context, search_session: search_session, current_document: @document) if blacklight_config.track_search_session.item_pagination_component %>
|
3
|
-
<% @page_title = t('blacklight.search.show.title', document_title: document_presenter(@document).html_title, application_name: application_name).html_safe %>
|
4
|
-
<% content_for(:head) { render_link_rel_alternates } %>
|
5
|
-
|
6
|
-
<% document_component = blacklight_config.view_config(:show).document_component -%>
|
7
|
-
<%= render (document_component).new(document_component.collection_parameter => document_presenter(@document), component: :div, show: true, partials: blacklight_config.view_config(:show).partials) do |component| %>
|
8
|
-
<% component.with_title(as: 'h1', classes: '', link_to_document: false, actions: false) %>
|
9
|
-
<% component.with_footer do %>
|
10
|
-
|
11
|
-
<% unless defined?(Geoblacklight) %>
|
12
|
-
<% if @document.sidecar_allmaps.georeferenced? %>
|
13
|
-
<%= render partial: 'allmaps/show/blacklight', locals: { document: @document } %>
|
14
|
-
<% end %>
|
15
|
-
<% end %>
|
16
|
-
|
17
|
-
<% if @document.respond_to?(:export_as_openurl_ctx_kev) %>
|
18
|
-
<!-- COinS, for Zotero among others. -->
|
19
|
-
<span class="Z3988" title="<%= @document.export_as_openurl_ctx_kev(document_presenter(@document).display_type) %>"></span>
|
20
|
-
<% end %>
|
21
|
-
<% end %>
|
22
|
-
<% end %>
|
23
|
-
|
24
|
-
<% else %>
|
25
|
-
<%= render(Blacklight::SearchContextComponent.new(search_context: @search_context, search_session: search_session)) if search_session['document_id'] == @document.id %>
|
26
|
-
|
27
|
-
<% @page_title = t('blacklight.search.show.title', document_title: Deprecation.silence(Blacklight::BlacklightHelperBehavior) { document_show_html_title }, application_name: application_name).html_safe %>
|
28
|
-
<% content_for(:head) { render_link_rel_alternates } %>
|
29
|
-
|
30
|
-
<%= render (blacklight_config.view_config(:show).document_component || Blacklight::DocumentComponent).new(presenter: document_presenter(@document), component: :div, title_component: :h1, show: true) do |component| %>
|
31
|
-
<% component.with_footer do %>
|
32
|
-
|
33
|
-
<% unless defined?(Geoblacklight) %>
|
34
|
-
<% if @document.sidecar_allmaps.georeferenced? %>
|
35
|
-
<%= render partial: 'allmaps/show/blacklight', locals: { document: @document } %>
|
36
|
-
<% end %>
|
37
|
-
<% end %>
|
38
|
-
|
39
|
-
<% if @document.respond_to?(:export_as_openurl_ctx_kev) %>
|
40
|
-
<!--
|
41
|
-
// COinS, for Zotero among others.
|
42
|
-
// This document_partial_name(@document) business is not quite right,
|
43
|
-
// but has been there for a while.
|
44
|
-
-->
|
45
|
-
<span class="Z3988" title="<%= @document.export_as_openurl_ctx_kev(Deprecation.silence(Blacklight::RenderPartialsHelperBehavior) { document_partial_name(@document) }) %>"></span>
|
46
|
-
<% end %>
|
47
|
-
<% end %>
|
48
|
-
|
49
|
-
<%# Use :body for complete backwards compatibility (overriding the component body markup),
|
50
|
-
but if the app explicitly opted-in to components, make the partials data available as :partials to ease migrations pain %>
|
51
|
-
<% component.public_send(blacklight_config.view_config(:show).document_component.blank? && blacklight_config.view_config(:show).partials.any? ? :with_body : :with_partial) do %>
|
52
|
-
<div id="doc_<%= @document.id.to_s.parameterize %>">
|
53
|
-
<%= render_document_partials @document, blacklight_config.view_config(:show).partials, component: component %>
|
54
|
-
</div>
|
55
|
-
<% end %>
|
56
|
-
<% end %>
|
57
|
-
<% end %>
|
58
|
-
|