bulkrax 9.2.0 → 9.2.1
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/app/assets/javascripts/bulkrax/importers.js.erb +4 -2
- data/app/factories/bulkrax/valkyrie_object_factory.rb +12 -6
- data/app/jobs/bulkrax/delete_and_import_job.rb +12 -4
- data/app/jobs/bulkrax/delete_file_set_job.rb +9 -0
- data/app/models/concerns/bulkrax/export_behavior.rb +2 -2
- data/app/views/bulkrax/importers/_file_uploader.html.erb +1 -1
- data/lib/bulkrax/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 462afc87884a3c6ed23d3d8b9237ec3dafeffcd2cda9b8e0836d74e0bcd68657
|
4
|
+
data.tar.gz: 4373f2ab775eb346a9b34b2bf7c2238b2b3c192a2c5d9a7e039974a56527ca74
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 887b076e34be355fe1708d97d1ab022106aa0c7e9eb8acf80233a3db0c648fb4642ab5be3cf8ddaf9fc270ebf61d0762630d803893de6d417a3baf6332405d86
|
7
|
+
data.tar.gz: bd12861189a4182da26dd3337dd4d89536616ec632a211ba4d8821c3d390d4b03093ed49a77a184359b95c7ae1667bcd4efc59a2fd907af370cadb861eb8f895
|
@@ -15,9 +15,11 @@ function prepBulkrax(event) {
|
|
15
15
|
// Initialize the uploader only if hyraxUploader is defined
|
16
16
|
if (typeof $.fn.hyraxUploader === 'function') {
|
17
17
|
// Initialize the uploader
|
18
|
-
$('.fileupload-bulkrax')
|
18
|
+
var uploader = $('.fileupload-bulkrax');
|
19
|
+
var maxFileSize = uploader.data('max-file-size');
|
20
|
+
uploader.hyraxUploader({
|
19
21
|
maxNumberOfFiles: 1,
|
20
|
-
maxFileSize:
|
22
|
+
maxFileSize: maxFileSize
|
21
23
|
});
|
22
24
|
|
23
25
|
// Function to toggle 'required' attribute based on uploaded files
|
@@ -236,7 +236,8 @@ module Bulkrax
|
|
236
236
|
# @input [Fileset or FileMetadata]
|
237
237
|
# @return [FileMetadata] the original file
|
238
238
|
def self.original_file(fileset:)
|
239
|
-
fileset.
|
239
|
+
return fileset if fileset.is_a?(Hyrax::FileMetadata)
|
240
|
+
fileset.try(:original_file)
|
240
241
|
end
|
241
242
|
|
242
243
|
##
|
@@ -293,6 +294,10 @@ module Bulkrax
|
|
293
294
|
def delete(user)
|
294
295
|
obj = find
|
295
296
|
raise ObjectFactoryInterface::ObjectNotFoundError, "Object not found to delete" unless obj
|
297
|
+
# delete the file sets when we delete a work
|
298
|
+
# This has to be done before the work is deleted or we can't find them
|
299
|
+
# via the custom query
|
300
|
+
destroy_existing_files(object: obj)
|
296
301
|
|
297
302
|
Hyrax.persister.delete(resource: obj)
|
298
303
|
Hyrax.index_adapter.delete(resource: obj)
|
@@ -547,8 +552,9 @@ module Bulkrax
|
|
547
552
|
end
|
548
553
|
|
549
554
|
# @Override Destroy existing files with Hyrax::Transactions
|
550
|
-
def destroy_existing_files
|
555
|
+
def destroy_existing_files(object: @object)
|
551
556
|
existing_files = Hyrax.custom_queries.find_child_file_sets(resource: object)
|
557
|
+
return if existing_files.empty?
|
552
558
|
|
553
559
|
existing_files.each do |fs|
|
554
560
|
transactions["file_set.destroy"]
|
@@ -558,10 +564,10 @@ module Bulkrax
|
|
558
564
|
.value!
|
559
565
|
end
|
560
566
|
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
567
|
+
object.member_ids = object.member_ids.reject { |m| existing_files.detect { |f| f.id == m } }
|
568
|
+
object.rendering_ids = []
|
569
|
+
object.representative_id = nil
|
570
|
+
object.thumbnail_id = nil
|
565
571
|
end
|
566
572
|
|
567
573
|
def transform_attributes(update: false)
|
@@ -5,10 +5,13 @@ module Bulkrax
|
|
5
5
|
queue_as :import
|
6
6
|
|
7
7
|
def perform(entry, importer_run)
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
self.class::
|
8
|
+
# Delete the object if it exists, then reimport it.
|
9
|
+
# If the object doesn't exist, just reimport it.
|
10
|
+
begin
|
11
|
+
status = self.class::DELETE_CLASS.perform_now(entry, importer_run)
|
12
|
+
reimport(entry, importer_run) if status.status_message == "Deleted"
|
13
|
+
rescue Bulkrax::ObjectFactoryInterface::ObjectNotFoundError
|
14
|
+
reimport(entry, importer_run)
|
12
15
|
end
|
13
16
|
|
14
17
|
rescue => e
|
@@ -16,5 +19,10 @@ module Bulkrax
|
|
16
19
|
# this causes caught exception to be reraised
|
17
20
|
raise
|
18
21
|
end
|
22
|
+
|
23
|
+
def reimport(entry, importer_run)
|
24
|
+
entry = Bulkrax::Entry.find(entry.id) # maximum reload
|
25
|
+
self.class::IMPORT_CLASS.perform_now(entry.id, importer_run.id)
|
26
|
+
end
|
19
27
|
end
|
20
28
|
end
|
@@ -3,7 +3,16 @@
|
|
3
3
|
module Bulkrax
|
4
4
|
class DeleteFileSetJob < DeleteJob
|
5
5
|
def perform(entry, importer_run)
|
6
|
+
# Ensure the entry has metadata built for delete if it
|
7
|
+
# doesn't already so it can be found for deletion.
|
8
|
+
if entry.respond_to?(:build_metadata_for_delete) &&
|
9
|
+
entry.parsed_metadata.nil? &&
|
10
|
+
entry.raw_metadata.present?
|
11
|
+
entry.build_metadata_for_delete
|
12
|
+
entry.save!
|
13
|
+
end
|
6
14
|
file_set = entry.factory.find
|
15
|
+
|
7
16
|
if file_set
|
8
17
|
parent = file_set.parent
|
9
18
|
if parent&.respond_to?(:ordered_members)
|
@@ -27,10 +27,10 @@ module Bulkrax
|
|
27
27
|
# Prepend the file_set id to ensure a unique filename and also one that is not longer than 255 characters
|
28
28
|
def filename(file_set)
|
29
29
|
# return if there are no files on the fileset
|
30
|
-
|
30
|
+
file = Bulkrax.object_factory.original_file(fileset: file_set)
|
31
|
+
return '' if file.blank?
|
31
32
|
|
32
33
|
fn = Bulkrax.object_factory.filename_for(fileset: file_set)
|
33
|
-
file = Bulkrax.object_factory.original_file(fileset: file_set)
|
34
34
|
ext = file_extension(file: file, filename: fn)
|
35
35
|
|
36
36
|
# Prepend the file_set id to ensure a unique filename
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<div class="fileupload-bulkrax">
|
1
|
+
<div class="fileupload-bulkrax" data-max-file-size="<%= (defined?(Hyrax) && Hyrax.config.uploader[:maxFileSize]) || 524288000 %>">
|
2
2
|
<noscript><input type="hidden" name="redirect" value="<%= main_app.root_path %>" /></noscript>
|
3
3
|
<table role="presentation" class="table table-striped"><tbody class="files"></tbody></table>
|
4
4
|
<div class="fileupload-buttonbar">
|
data/lib/bulkrax/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bulkrax
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 9.2.
|
4
|
+
version: 9.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Kaufman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-09-
|
11
|
+
date: 2025-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|