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
|
@@ -1,77 +1,93 @@
|
|
|
1
|
-
|
|
2
|
-
Document · Assets
|
|
1
|
+
<%- @page_title = "GBL♦Admin - Document - Assets" %>
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
<% if params[:document_id] %>
|
|
9
|
-
<h2 class='h3'>
|
|
10
|
-
<%= link_to(@document.title, admin_document_path(@document)) %>
|
|
11
|
-
·
|
|
12
|
-
<%= @document_assets.count %> assets
|
|
13
|
-
</h2>
|
|
14
|
-
<% else %>
|
|
15
|
-
<h2 class='h3'>Assets</h2>
|
|
16
|
-
<% end %>
|
|
3
|
+
<div class="row mb-2">
|
|
4
|
+
<div class="col">
|
|
5
|
+
<h1 style="width:100%;">
|
|
6
|
+
Document · Assets
|
|
17
7
|
|
|
18
|
-
<% if
|
|
19
|
-
|
|
20
|
-
<span class='float-left mt-3'>
|
|
21
|
-
<%== pagy_info(@pagy, 'assets'.pluralize(@pagy.count)) %>
|
|
22
|
-
</span>
|
|
23
|
-
<span class='float-right'>
|
|
24
|
-
<%== pagy_bootstrap_nav(@pagy) %>
|
|
25
|
-
</span>
|
|
26
|
-
</h6>
|
|
27
|
-
<% end %>
|
|
28
|
-
|
|
29
|
-
<div class="table-responsive">
|
|
30
|
-
<table class="table table-striped table-bordered sortable">
|
|
31
|
-
<thead class="thead-dark">
|
|
32
|
-
<tr>
|
|
33
|
-
<th>Thumbnail</th>
|
|
34
|
-
<th>Preview</th>
|
|
35
|
-
<th>Title</th>
|
|
36
|
-
<th>MimeType</th>
|
|
37
|
-
<th>Actions</th>
|
|
38
|
-
</tr>
|
|
39
|
-
</thead>
|
|
40
|
-
<tbody>
|
|
41
|
-
<% @document_assets.each do |document_asset| %>
|
|
42
|
-
<tr>
|
|
43
|
-
<td>
|
|
44
|
-
<% if document_asset.respond_to?(:thumbnail) %>
|
|
45
|
-
<%= document_asset.respond_to?(:thumbnail) %>
|
|
46
|
-
<% end %>
|
|
47
|
-
</td>
|
|
48
|
-
<td>
|
|
49
|
-
<% if document_asset.respond_to?(:thumbnail) %>
|
|
50
|
-
<%= image_tag(document_asset.file_url(:thumb_mini_2X), { height: 100 }) %>
|
|
51
|
-
<% end %>
|
|
52
|
-
</td>
|
|
53
|
-
<td><%= link_to(document_asset.title, document_asset.file.url) %></td>
|
|
54
|
-
|
|
55
|
-
<td>
|
|
56
|
-
<%= document_asset.file_data["metadata"]["mime_type"] %>
|
|
57
|
-
<span class="sr-only"><%= document_asset.inspect %></span>
|
|
58
|
-
</td>
|
|
59
|
-
<td><%= link_to 'Destroy', admin_document_document_asset_path(document_asset.parent, document_asset), method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
|
60
|
-
</tr>
|
|
8
|
+
<% if params[:document_id] %>
|
|
9
|
+
<%= link_to '+ Upload Assets', display_attach_form_admin_document_document_assets_url(@document), { class: 'btn btn-primary float-right mr-2' } %>
|
|
61
10
|
<% end %>
|
|
62
|
-
</
|
|
63
|
-
|
|
11
|
+
</h1>
|
|
12
|
+
<% if params[:document_id] %>
|
|
13
|
+
<h2 class='h3'>
|
|
14
|
+
<%= link_to(@document.title, admin_document_path(@document)) %>
|
|
15
|
+
·
|
|
16
|
+
<%= @document_assets.count %> assets
|
|
17
|
+
</h2>
|
|
18
|
+
<% else %>
|
|
19
|
+
<h2 class='h3'>Assets</h2>
|
|
20
|
+
<% end %>
|
|
64
21
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
</div>
|
|
22
|
+
<% if @pagy %>
|
|
23
|
+
<h6>
|
|
24
|
+
<span class='float-left mt-3'>
|
|
25
|
+
<%== pagy_info(@pagy, 'assets'.pluralize(@pagy.count)) %>
|
|
26
|
+
</span>
|
|
27
|
+
<span class='float-right'>
|
|
28
|
+
<%== pagy_bootstrap_nav(@pagy) %>
|
|
29
|
+
</span>
|
|
30
|
+
</h6>
|
|
31
|
+
<% end %>
|
|
76
32
|
|
|
77
|
-
<
|
|
33
|
+
<div class="table-responsive">
|
|
34
|
+
<table class="table table-striped table-bordered sortable">
|
|
35
|
+
<thead class="thead-dark">
|
|
36
|
+
<tr>
|
|
37
|
+
<th>Thumbnail</th>
|
|
38
|
+
<th>Preview</th>
|
|
39
|
+
<th>Title</th>
|
|
40
|
+
<th>Label</th>
|
|
41
|
+
<th>MimeType</th>
|
|
42
|
+
<th>Reference URI Type</th>
|
|
43
|
+
<th colspan="2">Actions</th>
|
|
44
|
+
</tr>
|
|
45
|
+
</thead>
|
|
46
|
+
<tbody>
|
|
47
|
+
<% @document_assets.each do |document_asset| %>
|
|
48
|
+
<tr>
|
|
49
|
+
<td>
|
|
50
|
+
<% if document_asset.respond_to?(:thumbnail) %>
|
|
51
|
+
<%= document_asset.thumbnail %>
|
|
52
|
+
<% end %>
|
|
53
|
+
</td>
|
|
54
|
+
<td>
|
|
55
|
+
<% if document_asset.respond_to?(:thumbnail) %>
|
|
56
|
+
<% unless document_asset.file_url(:thumb_standard).nil? %>
|
|
57
|
+
<%= image_tag(document_asset.file_url(:thumb_standard), { height: 100 }) %>
|
|
58
|
+
<% end %>
|
|
59
|
+
<% end %>
|
|
60
|
+
</td>
|
|
61
|
+
<td><%= link_to(document_asset.title, document_asset.file.url) %></td>
|
|
62
|
+
<td><%= document_asset.label %></td>
|
|
63
|
+
<td>
|
|
64
|
+
<%= document_asset.file_data["metadata"]["mime_type"] %>
|
|
65
|
+
<span class="sr-only"><%= document_asset.inspect %></span>
|
|
66
|
+
</td>
|
|
67
|
+
<td>
|
|
68
|
+
<%= document_asset.dct_references_uri_key %>
|
|
69
|
+
</td>
|
|
70
|
+
<td>
|
|
71
|
+
<%= link_to 'Edit', edit_admin_document_document_asset_path(document_asset.parent, document_asset) %>
|
|
72
|
+
</td>
|
|
73
|
+
<td>
|
|
74
|
+
<%= link_to 'Destroy', admin_document_document_asset_path(document_asset.parent, document_asset), method: :delete, data: { confirm: 'Are you sure?' } %>
|
|
75
|
+
</td>
|
|
76
|
+
</tr>
|
|
77
|
+
<% end %>
|
|
78
|
+
</tbody>
|
|
79
|
+
</table>
|
|
80
|
+
|
|
81
|
+
<% if @pagy %>
|
|
82
|
+
<h6>
|
|
83
|
+
<span class='float-left mt-3'>
|
|
84
|
+
<%== pagy_info(@pagy, 'imports'.pluralize(@pagy.count)) %>
|
|
85
|
+
</span>
|
|
86
|
+
<span class='float-right'>
|
|
87
|
+
<%== pagy_bootstrap_nav(@pagy) %>
|
|
88
|
+
</span>
|
|
89
|
+
</h6>
|
|
90
|
+
<% end %>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
@@ -1,70 +1,72 @@
|
|
|
1
1
|
<%- @page_title = "GBL♦Admin - Document - Download Links" %>
|
|
2
2
|
|
|
3
|
-
<
|
|
4
|
-
|
|
3
|
+
<div class="row mb-2">
|
|
4
|
+
<div class="col">
|
|
5
|
+
<h1 style="width:100%;">
|
|
6
|
+
Document · Download Links
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
<% if params[:document_id] %>
|
|
9
|
+
<%= link_to '+ Import CSV', import_admin_document_document_downloads_path(@document), { class: 'btn btn-primary float-right' } %>
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
</h1>
|
|
15
|
-
<% if params[:document_id] %>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
<% else %>
|
|
22
|
-
|
|
23
|
-
<% end %>
|
|
24
|
-
|
|
25
|
-
<% if @pagy %>
|
|
26
|
-
<h6>
|
|
27
|
-
<span class='float-left mt-3'>
|
|
28
|
-
<%== pagy_info(@pagy) %>
|
|
29
|
-
</span>
|
|
30
|
-
<span class='float-right'>
|
|
31
|
-
<%== pagy_bootstrap_nav(@pagy) %>
|
|
32
|
-
</span>
|
|
33
|
-
</h6>
|
|
34
|
-
<% end %>
|
|
35
|
-
|
|
36
|
-
<table class="table table-striped table-bordered sortable">
|
|
37
|
-
<thead class="thead-dark">
|
|
38
|
-
<tr>
|
|
39
|
-
<th class="header" colspan="2">Actions</th>
|
|
40
|
-
<th class="header">Layer Slug</th>
|
|
41
|
-
<th class="header">Download Label</th>
|
|
42
|
-
<th class="header">Download URL</th>
|
|
43
|
-
</tr>
|
|
44
|
-
</thead>
|
|
11
|
+
<%= link_to '+ New Download URL', new_admin_document_document_download_path(@document), { class: 'btn btn-primary float-right mr-2' } %>
|
|
12
|
+
<% else %>
|
|
13
|
+
<%= link_to '- Delete CSV', destroy_all_admin_document_downloads_path, { class: 'btn btn-danger float-right' } %>
|
|
14
|
+
<%= link_to '+ Import CSV', import_admin_document_downloads_path, { class: 'btn btn-primary float-right mr-4' } %>
|
|
15
|
+
<% end %>
|
|
16
|
+
</h1>
|
|
17
|
+
<% if params[:document_id] %>
|
|
18
|
+
<h2 class='h3'>
|
|
19
|
+
<%= link_to(@document.title, admin_document_path(@document)) %>
|
|
20
|
+
·
|
|
21
|
+
<%= @document_downloads.count %> downloads
|
|
22
|
+
</h2>
|
|
23
|
+
<% else %>
|
|
24
|
+
<h2 class='h3'>Download Links</h2>
|
|
25
|
+
<% end %>
|
|
45
26
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
<
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
27
|
+
<% if @pagy %>
|
|
28
|
+
<h6>
|
|
29
|
+
<span class='float-left mt-3'>
|
|
30
|
+
<%== pagy_info(@pagy) %>
|
|
31
|
+
</span>
|
|
32
|
+
<span class='float-right'>
|
|
33
|
+
<%== pagy_bootstrap_nav(@pagy) %>
|
|
34
|
+
</span>
|
|
35
|
+
</h6>
|
|
55
36
|
<% end %>
|
|
56
|
-
</tbody>
|
|
57
|
-
</table>
|
|
58
37
|
|
|
59
|
-
|
|
60
|
-
<
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
</
|
|
68
|
-
<% end %>
|
|
38
|
+
<table class="table table-striped table-bordered sortable">
|
|
39
|
+
<thead class="thead-dark">
|
|
40
|
+
<tr>
|
|
41
|
+
<th class="header">Layer Slug</th>
|
|
42
|
+
<th class="header">Download Label</th>
|
|
43
|
+
<th class="header">Download URL</th>
|
|
44
|
+
<th class="header" colspan="2">Actions</th>
|
|
45
|
+
</tr>
|
|
46
|
+
</thead>
|
|
69
47
|
|
|
70
|
-
<
|
|
48
|
+
<tbody>
|
|
49
|
+
<% @document_downloads.each do |document_download| %>
|
|
50
|
+
<tr>
|
|
51
|
+
<td><%= link_to document_download.friendlier_id, admin_document_path(document_download.document) %></td>
|
|
52
|
+
<td><%= document_download.label %></td>
|
|
53
|
+
<td><%= link_to document_download.value %></td>
|
|
54
|
+
<td><%= link_to 'Edit', edit_admin_document_document_download_path(document_download.document, document_download) %></td>
|
|
55
|
+
<td><%= link_to 'Destroy', admin_document_document_download_path(document_download.document, document_download), method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
|
56
|
+
</tr>
|
|
57
|
+
<% end %>
|
|
58
|
+
</tbody>
|
|
59
|
+
</table>
|
|
60
|
+
|
|
61
|
+
<% if @pagy %>
|
|
62
|
+
<h6>
|
|
63
|
+
<span class='float-left mt-3'>
|
|
64
|
+
<%== pagy_info(@pagy) %>
|
|
65
|
+
</span>
|
|
66
|
+
<span class='float-right'>
|
|
67
|
+
<%== pagy_bootstrap_nav(@pagy) %>
|
|
68
|
+
</span>
|
|
69
|
+
</h6>
|
|
70
|
+
<% end %>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
@@ -2,28 +2,49 @@
|
|
|
2
2
|
|
|
3
3
|
<% if document.respond_to?('friendlier_id') %>
|
|
4
4
|
<%= content_tag :li, id: document.friendlier_id, class: bookmarked do %>
|
|
5
|
-
|
|
5
|
+
<div class="row">
|
|
6
|
+
<div class="col-1">
|
|
7
|
+
<% # This should happen elsewhere %>
|
|
8
|
+
<% @document = Document.find_by(friendlier_id: document.friendlier_id) %>
|
|
9
|
+
<% if thumb_to_render?(@document) %>
|
|
10
|
+
<%= link_to edit_admin_document_path(document.friendlier_id) do %>
|
|
11
|
+
<% if @document.thumbnail.file_derivatives[:thumb_standard_2X].exists? %>
|
|
12
|
+
<%= image_tag(@document.thumbnail.file_url(:thumb_standard_2X), class: "thumbnail") %>
|
|
13
|
+
<% end %>
|
|
14
|
+
<% end %>
|
|
15
|
+
<% end %>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="result col">
|
|
18
|
+
<%= check_box_tag nil, nil, false, data: { id: document.friendlier_id, action: 'click->results#checkChecked'}%>
|
|
6
19
|
|
|
7
|
-
|
|
20
|
+
<%= render 'admin/documents/document_bookmark', document: document %>
|
|
8
21
|
|
|
9
|
-
|
|
22
|
+
<%= "#{@documents.meta['pages']['offset_value'] + index + 1}." if @documents %>
|
|
10
23
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
<% if document.send("schema_provider_s") %>
|
|
15
|
-
· <%= document.send("schema_provider_s") %>
|
|
16
|
-
<% end %>
|
|
17
|
-
<% if document.send("dct_temporal_sm") %>
|
|
18
|
-
· <%= document.send("dct_temporal_sm").join("-") %>
|
|
19
|
-
<% end %>
|
|
20
|
-
<% if document.send("dct_description_sm").present? %>
|
|
21
|
-
<p class="js-truncate"><%= document.send("dct_description_sm").join %></p>
|
|
22
|
-
<% end %>
|
|
24
|
+
<%= link_to document.title, edit_admin_document_path(document.friendlier_id) %>
|
|
25
|
+
· <%= publication_state_badge(document) %>
|
|
23
26
|
|
|
27
|
+
<% if document.send("schema_provider_s") %>
|
|
28
|
+
· <%= document.send("schema_provider_s") %>
|
|
29
|
+
<% end %>
|
|
30
|
+
<% if document.send("dct_temporal_sm") %>
|
|
31
|
+
· <%= document.send("dct_temporal_sm").join("-") %>
|
|
32
|
+
<% end %>
|
|
33
|
+
<% if document.send("dct_description_sm").present? %>
|
|
34
|
+
<p class="js-truncate"><%= document.send("dct_description_sm").join %></p>
|
|
35
|
+
<% end %>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
24
38
|
<% end %>
|
|
25
39
|
<% else %>
|
|
26
40
|
<li>
|
|
27
|
-
<
|
|
41
|
+
<div class="row">
|
|
42
|
+
<div class="thumbnail col-1">
|
|
43
|
+
|
|
44
|
+
</div>
|
|
45
|
+
<div class="result col">
|
|
46
|
+
<p><strong>Missing from database: </strong><%= document.inspect %></p>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
28
49
|
</li>
|
|
29
50
|
<% end %>
|
|
@@ -7,12 +7,27 @@
|
|
|
7
7
|
<div class="mr-2">
|
|
8
8
|
<h1 class="h5">
|
|
9
9
|
<% if @document.persisted? %>
|
|
10
|
-
<
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
<div class="row">
|
|
11
|
+
<% if @document.thumbnail.present? %>
|
|
12
|
+
<div class="thumbnail col-2">
|
|
13
|
+
<% unless @document&.thumbnail&.file_url(:thumb_mini).nil? %>
|
|
14
|
+
<%= image_tag @document&.thumbnail&.file_url(:thumb_mini) %>
|
|
15
|
+
<% end %>
|
|
16
|
+
</div>
|
|
17
|
+
<% end %>
|
|
18
|
+
<div class="col">
|
|
19
|
+
<span id="<%=@document.friendlier_id %>">
|
|
20
|
+
<%= render 'document_bookmark', document: @document %>
|
|
21
|
+
<%= truncate(@document.title, length: 80) %>
|
|
22
|
+
<%= publication_state_badge(@document) %>
|
|
23
|
+
<p class='mb-0'>
|
|
24
|
+
<small>Last updated <%= time_ago_in_words(@document.updated_at) %> ago.
|
|
25
|
+
<%= link_to 'Versions', admin_document_versions_path(@document) %> |
|
|
26
|
+
<%= link_to 'Admin View', admin_document_admin_path(@document) %>
|
|
27
|
+
</small>
|
|
28
|
+
</p>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
16
31
|
<% else %>
|
|
17
32
|
New document
|
|
18
33
|
<% end %>
|
|
@@ -15,9 +15,18 @@
|
|
|
15
15
|
<% end %>
|
|
16
16
|
|
|
17
17
|
<% if @document.persisted? %>
|
|
18
|
-
<%= link_to
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
<%= link_to admin_document_document_accesses_url(@document), class: "ml-2" do %>
|
|
19
|
+
Institutional Access Links
|
|
20
|
+
<span class="badge badge-light"><%= @document.document_accesses.count %></span>
|
|
21
|
+
<% end %>
|
|
22
|
+
<%= link_to admin_document_document_downloads_url(@document), class: "ml-2" do %>
|
|
23
|
+
Multiple Download Links
|
|
24
|
+
<span class="badge badge-light"><%= @document.document_downloads.count %></span>
|
|
25
|
+
<% end %>
|
|
26
|
+
<%= link_to admin_document_document_assets_url(@document), class: "ml-2" do %>
|
|
27
|
+
Additional Assets
|
|
28
|
+
<span class="badge badge-light"><%= @document.document_assets.count %></span>
|
|
29
|
+
<% end %>
|
|
21
30
|
<% end %>
|
|
22
31
|
</nav>
|
|
23
32
|
</div>
|
|
@@ -34,12 +34,17 @@
|
|
|
34
34
|
<span class="dropdown">
|
|
35
35
|
<button class="btn btn-sm btn-outline-primary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
36
36
|
<%= inline_svg_tag "file-import-solid.svg", class: 'icon baseline' %>
|
|
37
|
-
|
|
37
|
+
Bulk Actions
|
|
38
38
|
</button>
|
|
39
39
|
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
|
40
|
+
<h6 class="dropdown-header">Publication State</h6>
|
|
40
41
|
<a class="dropdown-item" data-action="click->results#setPubFieldNameValue" href="javascript:void(0);">Published</a>
|
|
41
42
|
<a class="dropdown-item" data-action="click->results#setPubFieldNameValue" href="javascript:void(0);">Unpublished</a>
|
|
42
43
|
<a class="dropdown-item" data-action="click->results#setPubFieldNameValue" href="javascript:void(0);">Draft</a>
|
|
44
|
+
<div class="dropdown-divider"></div>
|
|
45
|
+
<h6 class="dropdown-header">Imagery</h6>
|
|
46
|
+
<a class="dropdown-item" data-action="click->results#harvestThumbnails" href="javascript:void(0);">Harvest Thumbnails</a>
|
|
47
|
+
<a class="dropdown-item" data-action="click->results#deleteThumbnails" href="javascript:void(0);">Delete Thumbnails</a>
|
|
43
48
|
</div>
|
|
44
49
|
</span>
|
|
45
50
|
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
<div class="row flex-xl-nowrap">
|
|
2
|
+
<main class="col-md-12 mb-4">
|
|
3
|
+
<h1 style="width:100%;">
|
|
4
|
+
Document · Admin View
|
|
5
|
+
</h1>
|
|
6
|
+
|
|
7
|
+
<h3>
|
|
8
|
+
<%= link_to(@document.title, admin_document_path(@document)) %>
|
|
9
|
+
</h3>
|
|
10
|
+
|
|
11
|
+
<table class="table table-bordered table-sm">
|
|
12
|
+
<thead class="thead-dark">
|
|
13
|
+
<tr>
|
|
14
|
+
<th>Provenance</th>
|
|
15
|
+
<th>Updated At</th>
|
|
16
|
+
</tr>
|
|
17
|
+
</thead>
|
|
18
|
+
<tbody>
|
|
19
|
+
<tr>
|
|
20
|
+
<td><%= @document.schema_provider_s %></td>
|
|
21
|
+
<td>
|
|
22
|
+
<table>
|
|
23
|
+
<tr>
|
|
24
|
+
<th>Solr</th>
|
|
25
|
+
<td><%= DateTime.parse(@document.raw_solr_document["timestamp"]).strftime('%D %r') %></td>
|
|
26
|
+
</tr>
|
|
27
|
+
<tr>
|
|
28
|
+
<th>Database</th>
|
|
29
|
+
<td><%= @document.updated_at.strftime('%D %r') %></td>
|
|
30
|
+
</tr>
|
|
31
|
+
</table>
|
|
32
|
+
</td>
|
|
33
|
+
</tr>
|
|
34
|
+
</tbody>
|
|
35
|
+
</table>
|
|
36
|
+
|
|
37
|
+
<hr/>
|
|
38
|
+
|
|
39
|
+
<div id="accordion">
|
|
40
|
+
<div class="card">
|
|
41
|
+
<div class="card-header" id="database-object">
|
|
42
|
+
<button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#database-object-content" aria-controls="database-object-content">
|
|
43
|
+
<h3 class="mb-0">Database Object</h3>
|
|
44
|
+
</button>
|
|
45
|
+
</div>
|
|
46
|
+
<div id="database-object-content" class="collapse" aria-labelledby="database-object-content" data-parent="#database-object">
|
|
47
|
+
<div class="card-body">
|
|
48
|
+
<%= ap(JSON.parse(@document.to_json)).html_safe %>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<div class="card">
|
|
54
|
+
<div class="card-header" id="solr-document">
|
|
55
|
+
<button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#solr-document-content" aria-controls="solr-document-content">
|
|
56
|
+
<h3 class="mb-0">Solr Document</h3>
|
|
57
|
+
</button>
|
|
58
|
+
</div>
|
|
59
|
+
<div id="solr-document-content" class="collapse" aria-labelledby="solr-document-content" data-parent="#solr-document">
|
|
60
|
+
<div class="card-body">
|
|
61
|
+
<%= ap(JSON.parse(@document.raw_solr_document.to_json)).html_safe %>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<div class="card">
|
|
67
|
+
<div class="card-header" id="item-viewer">
|
|
68
|
+
<button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#item-viewer-content" aria-controls="item-viewer-content">
|
|
69
|
+
<h3 class="mb-0">Item Viewer</h3>
|
|
70
|
+
</button>
|
|
71
|
+
</div>
|
|
72
|
+
<div id="item-viewer-content" class="collapse" aria-labelledby="item-viewer-content" data-parent="#item-viewer">
|
|
73
|
+
<div class="card-body">
|
|
74
|
+
<table class="table">
|
|
75
|
+
<thead>
|
|
76
|
+
<tr>
|
|
77
|
+
<th>Protocol</th>
|
|
78
|
+
<th>Endpoint</th>
|
|
79
|
+
</tr>
|
|
80
|
+
<tbody>
|
|
81
|
+
<tr>
|
|
82
|
+
<td><%= @document.viewer_protocol %></td>
|
|
83
|
+
<td><%= link_to(@document.viewer_endpoint, @document.viewer_endpoint) %></td>
|
|
84
|
+
</tr>
|
|
85
|
+
</tbody>
|
|
86
|
+
</table>
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
|
|
91
|
+
<div class="card">
|
|
92
|
+
<div class="card-header" id="thumbnail">
|
|
93
|
+
<button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#thumbnail-content" aria-controls="thumbnail-content">
|
|
94
|
+
<h3 class="mb-0">Thumbnail</h3>
|
|
95
|
+
</button>
|
|
96
|
+
</div>
|
|
97
|
+
<div id="thumbnail-content" class="collapse" aria-labelledby="thumbnail-content" data-parent="#thumbnail">
|
|
98
|
+
<div class="card-body">
|
|
99
|
+
<table class="table">
|
|
100
|
+
<thead>
|
|
101
|
+
<tr>
|
|
102
|
+
<th>Display</th>
|
|
103
|
+
<th>Attached</th>
|
|
104
|
+
<th>State</th>
|
|
105
|
+
<th>Last Transition</th>
|
|
106
|
+
</tr>
|
|
107
|
+
</thead>
|
|
108
|
+
<tbody>
|
|
109
|
+
<tr>
|
|
110
|
+
<% if @document&.thumbnail&.present? %>
|
|
111
|
+
<td>
|
|
112
|
+
<span>AWS S3</span>
|
|
113
|
+
<div class="media">
|
|
114
|
+
<span class="mr-3">
|
|
115
|
+
<% unless @document&.thumbnail&.file_url(:thumb_mini).nil? %>
|
|
116
|
+
<%= image_tag @document&.thumbnail&.file_url(:thumb_mini) %>
|
|
117
|
+
<% end %>
|
|
118
|
+
</span>
|
|
119
|
+
</div>
|
|
120
|
+
</td>
|
|
121
|
+
<% else %>
|
|
122
|
+
<td><span>None</span></td>
|
|
123
|
+
<% end %>
|
|
124
|
+
<td><%= @document.thumbnail.present? %></td>
|
|
125
|
+
<td><%= @document&.thumbnail_state_machine&.current_state %></td>
|
|
126
|
+
<td><%= ap(@document&.thumbnail_state_machine&.last_transition).html_safe %></td>
|
|
127
|
+
</tr>
|
|
128
|
+
</tbody>
|
|
129
|
+
</table>
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
|
|
134
|
+
<div class="card">
|
|
135
|
+
<div class="card-header" id="references">
|
|
136
|
+
<button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#references-content" aria-controls="references-content">
|
|
137
|
+
<h3 class="mb-0">References</h3>
|
|
138
|
+
</button>
|
|
139
|
+
</div>
|
|
140
|
+
<div id="references-content" class="collapse" aria-labelledby="references-content" data-parent="#references">
|
|
141
|
+
<div class="card-body">
|
|
142
|
+
<table class="table responsive">
|
|
143
|
+
<thead>
|
|
144
|
+
<tr>
|
|
145
|
+
<th>Key</th>
|
|
146
|
+
<th>Values</th>
|
|
147
|
+
</tr>
|
|
148
|
+
</thead>
|
|
149
|
+
<tbody>
|
|
150
|
+
<% @document.references.each do |entry| %>
|
|
151
|
+
<tr>
|
|
152
|
+
<td><%= entry[0] %></td>
|
|
153
|
+
<td>
|
|
154
|
+
<% if entry[1].is_a?(Array) %>
|
|
155
|
+
<ul>
|
|
156
|
+
<% entry[1].each do |value| %>
|
|
157
|
+
<li><%= value %></li>
|
|
158
|
+
<% end %>
|
|
159
|
+
</ul>
|
|
160
|
+
<% else %>
|
|
161
|
+
<% if entry[1].is_a?(Hash) %>
|
|
162
|
+
<ul>
|
|
163
|
+
<% entry[1].each do |key, value| %>
|
|
164
|
+
<li><%= key %>: <%= value %></li>
|
|
165
|
+
<% end %>
|
|
166
|
+
</ul>
|
|
167
|
+
<% else %>
|
|
168
|
+
<p><%= link_to(entry[1], entry[1]) %></p>
|
|
169
|
+
<% end %>
|
|
170
|
+
<% end %>
|
|
171
|
+
</td>
|
|
172
|
+
</tr>
|
|
173
|
+
<% end %>
|
|
174
|
+
</tbody>
|
|
175
|
+
</table>
|
|
176
|
+
</div>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
|
|
180
|
+
<div class="card">
|
|
181
|
+
<div class="card-header" id="access-links">
|
|
182
|
+
<button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#access-links-content" aria-controls="access-links-content">
|
|
183
|
+
<h3 class="mb-0">Access Links</h3>
|
|
184
|
+
</button>
|
|
185
|
+
</div>
|
|
186
|
+
<div id="access-links-content" class="collapse" aria-labelledby="access-links-content" data-parent="#access-links">
|
|
187
|
+
<div class="card-body">
|
|
188
|
+
<table class="table responsive">
|
|
189
|
+
<thead>
|
|
190
|
+
<tr>
|
|
191
|
+
<th>University</th>
|
|
192
|
+
<th>Access Link</th>
|
|
193
|
+
</tr>
|
|
194
|
+
</thead>
|
|
195
|
+
<tbody>
|
|
196
|
+
<% @document.document_accesses.each do |da| %>
|
|
197
|
+
<tr>
|
|
198
|
+
<td><%= da.institution_code %></td>
|
|
199
|
+
<td><a href="<%= da.access_url %>"><%= da.access_url %></a></td>
|
|
200
|
+
</tr>
|
|
201
|
+
<% end %>
|
|
202
|
+
</tbody>
|
|
203
|
+
</table>
|
|
204
|
+
</div>
|
|
205
|
+
</div>
|
|
206
|
+
</div>
|
|
207
|
+
|
|
208
|
+
</div>
|
|
209
|
+
</main>
|
|
210
|
+
</div>
|