geoblacklight_admin 0.4.1 → 0.5.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 +10 -55
- data/Rakefile +3 -0
- data/app/assets/javascripts/geoblacklight_admin/chosen.js +7 -3
- data/app/assets/javascripts/geoblacklight_admin/datepicker.js +2 -2
- data/app/assets/javascripts/geoblacklight_admin/inputmask.js +2 -2
- data/app/assets/javascripts/geoblacklight_admin/truncate.js +2 -2
- data/app/assets/javascripts/geoblacklight_admin.js +1 -4
- data/app/assets/stylesheets/geoblacklight_admin/_core.scss +3 -1
- data/app/assets/stylesheets/geoblacklight_admin/modules/_images.scss +4 -0
- data/app/assets/stylesheets/geoblacklight_admin/modules/_nav.scss +4 -0
- data/app/assets/stylesheets/geoblacklight_admin/modules/_results.scss +5 -0
- data/app/controllers/admin/admin_controller.rb +1 -1
- data/app/controllers/admin/advanced_search_controller.rb +0 -1
- data/app/controllers/admin/assets_controller.rb +142 -0
- data/app/controllers/admin/bulk_actions_controller.rb +1 -1
- data/app/controllers/admin/document_accesses_controller.rb +3 -3
- data/app/controllers/admin/document_assets_controller.rb +33 -23
- data/app/controllers/admin/documents_controller.rb +6 -2
- data/app/controllers/admin/ids_controller.rb +0 -1
- data/app/controllers/admin/imports_controller.rb +2 -2
- data/app/helpers/asset_helper.rb +8 -0
- data/app/helpers/document_helper.rb +4 -0
- data/app/helpers/geoblacklight_admin_helper.rb +11 -1
- data/{lib/generators/geoblacklight_admin/templates → app}/javascript/controllers/results_controller.js +38 -0
- data/app/javascript/entrypoints/engine.js +8 -0
- data/app/javascript/index.js +8 -0
- data/app/jobs/bulk_action_revert_document_job.rb +2 -2
- data/app/jobs/bulk_action_run_document_job.rb +5 -1
- data/app/jobs/bulk_action_run_job.rb +11 -1
- data/app/jobs/geoblacklight_admin/delete_thumbnail_job.rb +17 -0
- data/app/jobs/geoblacklight_admin/remove_parent_dct_references_uri_job.rb +16 -0
- data/app/jobs/geoblacklight_admin/set_parent_dct_references_uri_job.rb +19 -0
- data/app/jobs/geoblacklight_admin/store_image_job.rb +21 -2
- data/app/models/asset.rb +38 -0
- data/app/models/blacklight_api.rb +2 -2
- data/app/models/blacklight_api_facets.rb +1 -1
- data/app/models/blacklight_api_ids.rb +2 -2
- data/app/models/bulk_action_document_state_machine.rb +2 -4
- data/app/models/bulk_action_state_machine.rb +3 -3
- data/app/models/bulk_actions/change_publication_state.rb +10 -0
- data/app/models/document/reference.rb +24 -0
- data/app/models/document.rb +122 -11
- data/app/models/document_thumbnail_state_machine.rb +22 -0
- data/app/models/document_thumbnail_transition.rb +26 -0
- data/app/models/element.rb +1 -1
- data/app/models/geoblacklight_admin/field_mappings_btaa_aardvark.rb +7 -1
- data/app/models/geoblacklight_admin/schema.rb +37 -1
- data/app/models/geoblacklight_admin/solr_utils.rb +87 -0
- data/app/models/kithe/vips_cli_image_to_png.rb +114 -0
- data/app/services/geoblacklight_admin/image_service/iiif.rb +2 -2
- data/app/services/geoblacklight_admin/image_service/iiif_manifest.rb +111 -0
- data/app/services/geoblacklight_admin/image_service/tms.rb +50 -0
- data/app/services/geoblacklight_admin/image_service/wms.rb +1 -4
- data/app/services/geoblacklight_admin/image_service.rb +16 -40
- data/app/services/geoblacklight_admin/item_viewer.rb +1 -1
- data/app/uploaders/asset_uploader.rb +6 -11
- data/app/views/admin/assets/_form.html.erb +19 -0
- data/app/views/admin/assets/display_attach_form.html.erb +39 -0
- data/app/views/admin/assets/edit.html.erb +9 -0
- data/app/views/admin/assets/index.html.erb +75 -0
- data/app/views/admin/assets/show.html.erb +100 -0
- data/app/views/admin/bulk_actions/index.html.erb +50 -48
- data/app/views/admin/bulk_actions/show.html.erb +3 -2
- data/app/views/admin/document_accesses/index.html.erb +68 -64
- data/app/views/admin/document_assets/_form.html.erb +17 -0
- data/app/views/admin/document_assets/display_attach_form.html.erb +4 -9
- data/app/views/admin/document_assets/edit.html.erb +5 -0
- data/app/views/admin/document_assets/index.html.erb +88 -72
- data/app/views/admin/document_downloads/index.html.erb +64 -62
- data/app/views/admin/documents/_document.html.erb +37 -16
- data/app/views/admin/documents/_form.html.erb +21 -6
- data/app/views/admin/documents/_form_nav.html.erb +12 -3
- data/app/views/admin/documents/_result_selected_options.html.erb +6 -1
- data/app/views/admin/documents/admin.html.erb +210 -0
- data/app/views/admin/documents/index.html.erb +10 -1
- data/app/views/admin/documents/versions.html.erb +3 -3
- data/app/views/admin/elements/index.html.erb +55 -54
- data/app/views/admin/form_elements/index.html.erb +38 -35
- data/app/views/admin/imports/index.html.erb +52 -50
- data/app/views/admin/layouts/application.html.erb +7 -4
- data/app/views/admin/shared/_js_behaviors.html.erb +6 -3
- data/app/views/admin/shared/_navbar.html.erb +11 -8
- data/config/locales/documents.en.yml +6 -0
- data/config/routes.rb +1 -0
- data/config/vite.json +14 -0
- data/db/migrate/20240619171628_create_document_thumbnail_statesman.rb +18 -0
- data/lib/generators/geoblacklight_admin/config_generator.rb +63 -15
- data/lib/generators/geoblacklight_admin/install_generator.rb +1 -0
- data/lib/generators/geoblacklight_admin/templates/api_controller.rb +0 -2
- data/lib/generators/geoblacklight_admin/templates/base.html.erb +53 -0
- data/lib/generators/geoblacklight_admin/templates/config/initializers/kithe.rb +1 -0
- data/lib/generators/geoblacklight_admin/templates/config/settings.yml +15 -1
- data/lib/generators/geoblacklight_admin/templates/config/vite.json +16 -0
- data/lib/generators/geoblacklight_admin/templates/frontend/entrypoints/application.js +30 -0
- data/lib/generators/geoblacklight_admin/templates/package-test.json +10 -0
- data/lib/generators/geoblacklight_admin/templates/package.json +5 -29
- data/lib/generators/geoblacklight_admin/templates/vite.config.ts +8 -0
- data/lib/geoblacklight_admin/engine.rb +1 -0
- data/lib/geoblacklight_admin/rake_task.rb +5 -0
- data/lib/geoblacklight_admin/tasks/images.rake +33 -0
- data/lib/geoblacklight_admin/tasks/solr.rake +11 -0
- data/lib/geoblacklight_admin/version.rb +1 -1
- metadata +75 -19
- data/lib/generators/geoblacklight_admin/templates/javascript/controllers/application_controller.js +0 -17
- data/lib/generators/geoblacklight_admin/templates/javascript/controllers/document_controller.js +0 -26
- data/lib/generators/geoblacklight_admin/templates/javascript/controllers/index.js +0 -10
- data/lib/tasks/geoblacklight_admin/images.rake +0 -30
- data/lib/tasks/geoblacklight_admin.rake +0 -213
|
@@ -11,16 +11,29 @@ module GeoblacklightAdmin
|
|
|
11
11
|
1. Copies GBL Admin initializer files to host config
|
|
12
12
|
2. Copies database.yml connection to host config
|
|
13
13
|
3. Copies sidekiq.yml connection to host config
|
|
14
|
-
4. Copies settings.yml to host config
|
|
15
14
|
5. Copies .env.development and .env.test to host
|
|
15
|
+
4. Copies settings.yml to host config
|
|
16
|
+
create_solr_yml
|
|
16
17
|
6. Copies JSON Schema to host
|
|
17
18
|
7. Copies solr/* to host
|
|
18
19
|
8. Sets Routes
|
|
19
|
-
|
|
20
|
+
set_development_mailer_host
|
|
20
21
|
11.Sets DB Seeds
|
|
21
|
-
11.Sets ActiveStorage
|
|
22
22
|
12.Sets Pagy Backend
|
|
23
|
-
|
|
23
|
+
11.Sets ActiveStorage
|
|
24
|
+
add_api_controller
|
|
25
|
+
add_user_util_links
|
|
26
|
+
copy_catalog_index_view
|
|
27
|
+
add_show_sidebar
|
|
28
|
+
copy_app_javascript
|
|
29
|
+
copy_app_images
|
|
30
|
+
add_package_json
|
|
31
|
+
add_assets_initialier
|
|
32
|
+
add_kithe_bulk_loading_service
|
|
33
|
+
add_kithe_model_to_solr_document
|
|
34
|
+
add_search_builder_publication_state_concern
|
|
35
|
+
add_import_id_facet
|
|
36
|
+
add_vite_rails_config
|
|
24
37
|
DESCRIPTION
|
|
25
38
|
|
|
26
39
|
def create_gbl_admin_initializer_files
|
|
@@ -88,6 +101,21 @@ module GeoblacklightAdmin
|
|
|
88
101
|
# Root
|
|
89
102
|
root to: "documents#index"
|
|
90
103
|
|
|
104
|
+
# Assets
|
|
105
|
+
# Note "assets" is Rails reserved word for routing, oops. So we use
|
|
106
|
+
# asset_files.
|
|
107
|
+
resources :assets, path: "asset_files" do
|
|
108
|
+
collection do
|
|
109
|
+
get "display_attach_form"
|
|
110
|
+
post "attach_files"
|
|
111
|
+
|
|
112
|
+
get "destroy_all"
|
|
113
|
+
post "destroy_all"
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
post :sort, on: :collection
|
|
117
|
+
end
|
|
118
|
+
|
|
91
119
|
# Bulk Actions
|
|
92
120
|
resources :bulk_actions do
|
|
93
121
|
patch :run, on: :member
|
|
@@ -143,6 +171,7 @@ module GeoblacklightAdmin
|
|
|
143
171
|
|
|
144
172
|
# Documents
|
|
145
173
|
resources :documents do
|
|
174
|
+
get "admin"
|
|
146
175
|
get "versions"
|
|
147
176
|
|
|
148
177
|
# DocumentAccesses
|
|
@@ -216,8 +245,15 @@ module GeoblacklightAdmin
|
|
|
216
245
|
end
|
|
217
246
|
end
|
|
218
247
|
|
|
248
|
+
# Assets
|
|
249
|
+
get "/asset_files/ingest", to: "assets#display_attach_form", as: "assets_ingest"
|
|
250
|
+
post "/asset_files/ingest", to: "assets#attach_files"
|
|
251
|
+
|
|
252
|
+
# DocumentAssets
|
|
219
253
|
get "/documents/:id/ingest", to: "document_assets#display_attach_form", as: "asset_ingest"
|
|
220
254
|
post "/documents/:id/ingest", to: "document_assets#attach_files"
|
|
255
|
+
|
|
256
|
+
# Asset Direct Upload
|
|
221
257
|
mount Kithe::AssetUploader.upload_endpoint(:cache) => "/direct_upload", :as => :direct_app_upload
|
|
222
258
|
|
|
223
259
|
resources :collections, except: [:show]
|
|
@@ -264,9 +300,9 @@ module GeoblacklightAdmin
|
|
|
264
300
|
def add_activestorage
|
|
265
301
|
append_to_file "app/assets/javascripts/application.js" do
|
|
266
302
|
"
|
|
267
|
-
|
|
268
303
|
// Required by GBL Admin
|
|
269
|
-
//= require activestorage
|
|
304
|
+
//= require activestorage
|
|
305
|
+
//= require geoblacklight_admin"
|
|
270
306
|
end
|
|
271
307
|
end
|
|
272
308
|
|
|
@@ -286,14 +322,6 @@ module GeoblacklightAdmin
|
|
|
286
322
|
copy_file "_show_sidebar.html.erb", "app/views/catalog/_show_sidebar.html.erb"
|
|
287
323
|
end
|
|
288
324
|
|
|
289
|
-
# @TODO
|
|
290
|
-
# I'm certain this is not the best way to inject our JS behaviors into the root app
|
|
291
|
-
# But for now, this will do...
|
|
292
|
-
# Long term I hope to avoid webpack here altogether.
|
|
293
|
-
def copy_app_javascript
|
|
294
|
-
directory "javascript", "app/javascript", force: true
|
|
295
|
-
end
|
|
296
|
-
|
|
297
325
|
def copy_app_images
|
|
298
326
|
copy_file "images/bookmark-regular.svg", "app/assets/images/bookmark-regular.svg"
|
|
299
327
|
copy_file "images/bookmark-solid.svg", "app/assets/images/bookmark-solid.svg"
|
|
@@ -303,13 +331,18 @@ module GeoblacklightAdmin
|
|
|
303
331
|
copy_file "package.json", "package.json", force: true
|
|
304
332
|
end
|
|
305
333
|
|
|
334
|
+
def copy_rake_tasks
|
|
335
|
+
append_to_file "Rakefile", "require \"geoblacklight_admin/rake_task\"\n"
|
|
336
|
+
end
|
|
337
|
+
|
|
306
338
|
def add_assets_initialier
|
|
307
339
|
append_to_file "config/initializers/assets.rb" do
|
|
308
340
|
"
|
|
309
341
|
# GBL ADMIN
|
|
310
342
|
Rails.application.config.assets.paths << Rails.root.join('node_modules')
|
|
311
343
|
Rails.application.config.assets.precompile += %w( geoblacklight_admin.js )
|
|
312
|
-
Rails.application.config.assets.precompile += %w[application.js]
|
|
344
|
+
Rails.application.config.assets.precompile += %w[application.js]
|
|
345
|
+
Rails.application.config.assets.precompile += %w[application.css]"
|
|
313
346
|
end
|
|
314
347
|
end
|
|
315
348
|
|
|
@@ -340,5 +373,20 @@ module GeoblacklightAdmin
|
|
|
340
373
|
"\nconfig.add_facet_field Settings.FIELDS.B1G_IMPORT_ID, label: 'Import ID', show: false\n"
|
|
341
374
|
end
|
|
342
375
|
end
|
|
376
|
+
|
|
377
|
+
def add_vite_rails_config
|
|
378
|
+
copy_file "base.html.erb", "app/views/layouts/blacklight/base.html.erb", force: true
|
|
379
|
+
copy_file "vite.config.ts", "vite.config.ts", force: true
|
|
380
|
+
copy_file "config/vite.json", "config/vite.json", force: true
|
|
381
|
+
copy_file "frontend/entrypoints/application.js", "app/javascript/entrypoints/application.js", force: true
|
|
382
|
+
end
|
|
383
|
+
|
|
384
|
+
# Run bundle with vite install
|
|
385
|
+
def bundle_install
|
|
386
|
+
Bundler.with_clean_env do
|
|
387
|
+
run "bundle install"
|
|
388
|
+
run "bundle exec vite install"
|
|
389
|
+
end
|
|
390
|
+
end
|
|
343
391
|
end
|
|
344
392
|
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<%= content_tag :html, class: 'no-js', **html_tag_attributes do %>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
7
|
+
<meta name="geoblacklight-version" content="<%= Geoblacklight::VERSION %>">
|
|
8
|
+
|
|
9
|
+
<!-- Internet Explorer use the highest version available -->
|
|
10
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
11
|
+
|
|
12
|
+
<title><%= render_page_title %></title>
|
|
13
|
+
<script>
|
|
14
|
+
document.querySelector('html').classList.remove('no-js');
|
|
15
|
+
</script>
|
|
16
|
+
<%= opensearch_description_tag application_name, opensearch_catalog_url(format: 'xml') %>
|
|
17
|
+
<%= favicon_link_tag %>
|
|
18
|
+
<%= stylesheet_link_tag "application", media: "all", "data-turbo-track": "reload" %>
|
|
19
|
+
<%= javascript_include_tag "application", "data-turbo-track": "reload" %>
|
|
20
|
+
|
|
21
|
+
<%= vite_client_tag %>
|
|
22
|
+
<%= vite_javascript_tag 'application' %>
|
|
23
|
+
<% if openlayers_container? %>
|
|
24
|
+
<%= vite_javascript_tag 'ol' %>
|
|
25
|
+
<% elsif iiif_manifest_container? %>
|
|
26
|
+
<%= vite_javascript_tag 'clover' %>
|
|
27
|
+
<% end %>
|
|
28
|
+
|
|
29
|
+
<%= csrf_meta_tags %>
|
|
30
|
+
<%= content_for(:head) %>
|
|
31
|
+
</head>
|
|
32
|
+
<body class="<%= render_body_class %>">
|
|
33
|
+
<nav id="skip-link" role="navigation" aria-label="<%= t('blacklight.skip_links.label') %>">
|
|
34
|
+
<%= link_to t('blacklight.skip_links.search_field'), '#search_field', class: 'element-invisible element-focusable rounded-bottom py-2 px-3', data: { turbolinks: 'false' } %>
|
|
35
|
+
<%= link_to t('blacklight.skip_links.main_content'), '#main-container', class: 'element-invisible element-focusable rounded-bottom py-2 px-3', data: { turbolinks: 'false' } %>
|
|
36
|
+
<%= content_for(:skip_links) %>
|
|
37
|
+
</nav>
|
|
38
|
+
<%= render partial: 'shared/header_navbar' %>
|
|
39
|
+
|
|
40
|
+
<main id="main-container" class="<%= container_classes %>" role="main" aria-label="<%= t('blacklight.main.aria.main_container') %>">
|
|
41
|
+
<%= content_for(:container_header) %>
|
|
42
|
+
|
|
43
|
+
<%= render partial: 'shared/flash_msg', layout: 'shared/flash_messages' %>
|
|
44
|
+
|
|
45
|
+
<div class="row">
|
|
46
|
+
<%= content_for?(:content) ? yield(:content) : yield %>
|
|
47
|
+
</div>
|
|
48
|
+
</main>
|
|
49
|
+
|
|
50
|
+
<%= render partial: 'shared/footer' %>
|
|
51
|
+
<%= render partial: 'shared/modal' %>
|
|
52
|
+
</body>
|
|
53
|
+
<% end %>
|
|
@@ -125,6 +125,8 @@ WEBSERVICES_SHOWN:
|
|
|
125
125
|
- 'tiled_map_layer'
|
|
126
126
|
- 'dynamic_map_layer'
|
|
127
127
|
- 'image_map_layer'
|
|
128
|
+
- 'cog'
|
|
129
|
+
- 'pmtiles'
|
|
128
130
|
|
|
129
131
|
# Display Notes to display / Non-prefixed default bootstrap class is alert-secondary
|
|
130
132
|
DISPLAY_NOTES_SHOWN:
|
|
@@ -287,10 +289,22 @@ HELP_TEXT:
|
|
|
287
289
|
- 'wms'
|
|
288
290
|
- 'tms'
|
|
289
291
|
- 'oembed'
|
|
292
|
+
- 'cog'
|
|
293
|
+
- 'pmtiles'
|
|
294
|
+
|
|
290
295
|
|
|
291
296
|
# Enable catalog#show sidebar static map for items with the following viewer protocols
|
|
292
297
|
SIDEBAR_STATIC_MAP:
|
|
293
298
|
- 'iiif'
|
|
294
299
|
- 'iiif_manifest'
|
|
295
300
|
|
|
296
|
-
GBLSI_THUMBNAIL_FIELD: 'b1g_image_ss'
|
|
301
|
+
GBLSI_THUMBNAIL_FIELD: 'b1g_image_ss'
|
|
302
|
+
|
|
303
|
+
#########
|
|
304
|
+
# GBL ADMIN SETTINGS
|
|
305
|
+
|
|
306
|
+
# Used to generate derivatives in app/uploaders/asset_uploader.rb
|
|
307
|
+
# Hash of thumbnail sizes
|
|
308
|
+
GBL_ADMIN_THUMBNAIL_WIDTHS:
|
|
309
|
+
mini: 50
|
|
310
|
+
standard: 200
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"all": {
|
|
3
|
+
"sourceCodeDir": "app/javascript",
|
|
4
|
+
"watchAdditionalPaths": []
|
|
5
|
+
},
|
|
6
|
+
"development": {
|
|
7
|
+
"autoBuild": true,
|
|
8
|
+
"publicOutputDir": "vite-dev",
|
|
9
|
+
"port": 3036
|
|
10
|
+
},
|
|
11
|
+
"test": {
|
|
12
|
+
"autoBuild": true,
|
|
13
|
+
"publicOutputDir": "vite-test",
|
|
14
|
+
"port": 3037
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// To see this message, add the following to the `<head>` section in your
|
|
2
|
+
// views/layouts/application.html.erb
|
|
3
|
+
//
|
|
4
|
+
// <%= vite_client_tag %>
|
|
5
|
+
// <%= vite_javascript_tag 'application' %>
|
|
6
|
+
console.log('Vite ⚡️ Rails - Local')
|
|
7
|
+
|
|
8
|
+
// If using a TypeScript entrypoint file:
|
|
9
|
+
// <%= vite_typescript_tag 'application' %>
|
|
10
|
+
//
|
|
11
|
+
// If you want to use .jsx or .tsx, add the extension:
|
|
12
|
+
// <%= vite_javascript_tag 'application.jsx' %>
|
|
13
|
+
|
|
14
|
+
// console.log('Visit the guide for more information: ', 'https://vite-ruby.netlify.app/guide/rails')
|
|
15
|
+
|
|
16
|
+
// Example: Load Rails libraries in Vite.
|
|
17
|
+
//
|
|
18
|
+
// import * as Turbo from '@hotwired/turbo'
|
|
19
|
+
// Turbo.start()
|
|
20
|
+
//
|
|
21
|
+
// import ActiveStorage from '@rails/activestorage'
|
|
22
|
+
// ActiveStorage.start()
|
|
23
|
+
//
|
|
24
|
+
// // Import all channels.
|
|
25
|
+
// const channels = import.meta.globEager('./**/*_channel.js')
|
|
26
|
+
|
|
27
|
+
// Example: Import a stylesheet in app/frontend/index.css
|
|
28
|
+
// import '~/index.css'
|
|
29
|
+
|
|
30
|
+
import '@geoblacklight/admin'
|
|
@@ -1,35 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "internal",
|
|
3
|
-
"private": true,
|
|
4
2
|
"dependencies": {
|
|
5
|
-
"@
|
|
6
|
-
"@
|
|
7
|
-
"@nathanvda/cocoon": "^1.2.14",
|
|
8
|
-
"@rails/actioncable": "^6.0.0",
|
|
9
|
-
"@rails/activestorage": "^6.0.0",
|
|
10
|
-
"@rails/ujs": "^6.0.0",
|
|
11
|
-
"@rails/webpacker": "5.4.3",
|
|
12
|
-
"bootstrap": "^4.5.0",
|
|
13
|
-
"bootstrap-datepicker": "^1.9.0",
|
|
14
|
-
"chosen-jquery": "^0.1.1",
|
|
15
|
-
"devbridge-autocomplete": "^1.4.10",
|
|
16
|
-
"highcharts": "^9.3.2",
|
|
17
|
-
"i18n": "^0.15.1",
|
|
18
|
-
"inputmask": "^5.0.3",
|
|
19
|
-
"moment": "^2.29.4",
|
|
20
|
-
"node-forge": "^1.0.0",
|
|
21
|
-
"popper.js": "^1.16.1",
|
|
22
|
-
"serialize-javascript": "^3.1.0",
|
|
23
|
-
"shave": "^2.5.10",
|
|
24
|
-
"stimulus": "^1.1.1",
|
|
25
|
-
"stimulus-scroll-to": "^2.0.1",
|
|
26
|
-
"turbolinks": "^5.2.0",
|
|
27
|
-
"webpack": "^4.46.0",
|
|
28
|
-
"webpack-cli": "^3.3.12",
|
|
29
|
-
"yargs-parser": "^13.1.2"
|
|
3
|
+
"@geoblacklight/frontend": "^4.4",
|
|
4
|
+
"@geoblacklight/admin": "^0.4"
|
|
30
5
|
},
|
|
31
|
-
"version": "0.1.0",
|
|
32
6
|
"devDependencies": {
|
|
33
|
-
"
|
|
7
|
+
"vite": "^5.1.5",
|
|
8
|
+
"vite-plugin-ruby": "^5.0.0",
|
|
9
|
+
"vite-plugin-rails": "^0.5.0"
|
|
34
10
|
}
|
|
35
11
|
}
|
|
@@ -9,6 +9,7 @@ module GeoblacklightAdmin
|
|
|
9
9
|
initializer "geoblacklight_admin.helpers" do
|
|
10
10
|
config.after_initialize do
|
|
11
11
|
ActionView::Base.include GeoblacklightAdminHelper
|
|
12
|
+
ActionView::Base.include AssetHelper
|
|
12
13
|
ActionView::Base.include BulkActionsHelper
|
|
13
14
|
ActionView::Base.include DocumentHelper
|
|
14
15
|
ActionView::Base.include FormInputHelper
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require "csv"
|
|
2
|
+
|
|
3
|
+
namespace :geoblacklight_admin do
|
|
4
|
+
namespace :images do
|
|
5
|
+
desc "Harvest image for specific document - priority queue"
|
|
6
|
+
task harvest_doc_id: :environment do
|
|
7
|
+
GeoblacklightAdmin::StoreImageJob.perform_later(ENV["DOC_ID"], nil, :priority)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
desc "Harvest all images - uses low priority queue"
|
|
11
|
+
task harvest_all: [:environment] do
|
|
12
|
+
cursor_mark = "*"
|
|
13
|
+
loop do
|
|
14
|
+
response = Blacklight.default_index.connection.get(
|
|
15
|
+
"select", params: {
|
|
16
|
+
q: "*:*", # all docs
|
|
17
|
+
fl: "geomg_id_s, id",
|
|
18
|
+
cursorMark: cursor_mark, # use the cursor mark to handle paging
|
|
19
|
+
rows: 1000,
|
|
20
|
+
sort: "geomg_id_s asc" # must sort by id to use the cursor mark
|
|
21
|
+
}
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
response["response"]["docs"].each do |doc|
|
|
25
|
+
GeoblacklightAdmin::StoreImageJob.perform_later(doc["id"], nil, :low_priority)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
break if response["nextCursorMark"] == cursor_mark # this means the result set is finished
|
|
29
|
+
cursor_mark = response["nextCursorMark"]
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
require "csv"
|
|
2
|
+
|
|
3
|
+
namespace :geoblacklight_admin do
|
|
4
|
+
namespace :solr do
|
|
5
|
+
desc "Delete orphans from Solr"
|
|
6
|
+
task delete_orphans: :environment do
|
|
7
|
+
deleted_orphans = GeoblacklightAdmin::SolrUtils.delete_solr_orphans(batch_size: 1000)
|
|
8
|
+
puts "Deleted: #{deleted_orphans.inspect}"
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|