diff --git a/.regen b/.regen
index 3886a72edc..c17314ccc0 100644
--- a/.regen
+++ b/.regen
@@ -1,2 +1,2 @@
# When updating CI regen seed, set to current date.
-2023-08-09T14:34:59
+2024-09-09T14:34:59
diff --git a/app/controllers/hyrax/dashboard/collections_controller.rb b/app/controllers/hyrax/dashboard/collections_controller.rb
index 001037a232..e980130efa 100644
--- a/app/controllers/hyrax/dashboard/collections_controller.rb
+++ b/app/controllers/hyrax/dashboard/collections_controller.rb
@@ -231,7 +231,8 @@ def update_valkyrie_collection
banner_unchanged_indicator: params["banner_unchanged"] },
'collection_resource.save_collection_logo' => { update_logo_file_ids: params["logo_files"],
alttext_values: params["alttext"],
- linkurl_values: params["linkurl"] }
+ linkurl_values: params["linkurl"],
+ logo_unchanged_indicator: false }
)
.call(form)
@collection = result.value_or { return after_update_errors(result.failure.first) }
diff --git a/lib/hyrax/transactions/steps/save_collection_logo.rb b/lib/hyrax/transactions/steps/save_collection_logo.rb
index 530ce577b6..24f2f59730 100644
--- a/lib/hyrax/transactions/steps/save_collection_logo.rb
+++ b/lib/hyrax/transactions/steps/save_collection_logo.rb
@@ -19,7 +19,8 @@ class SaveCollectionLogo
#
# @return [Dry::Monads::Result] `Failure` if the work fails to save;
# `Success(input)`, otherwise.
- def call(collection_resource, update_logo_file_ids: nil, alttext_values: nil, linkurl_values: nil)
+ def call(collection_resource, update_logo_file_ids: nil, alttext_values: nil, linkurl_values: nil, logo_unchanged_indicator: true)
+ return Success(collection_resource) if ActiveModel::Type::Boolean.new.cast(logo_unchanged_indicator)
collection_id = collection_resource.id.to_s
process_logo_input(collection_id: collection_id, update_logo_file_ids: update_logo_file_ids, alttext_values: alttext_values, linkurl_values: linkurl_values)
Success(collection_resource)
diff --git a/spec/hyrax/transactions/steps/save_collection_logo_spec.rb b/spec/hyrax/transactions/steps/save_collection_logo_spec.rb
index ae44cd0214..c0b9a2e28b 100644
--- a/spec/hyrax/transactions/steps/save_collection_logo_spec.rb
+++ b/spec/hyrax/transactions/steps/save_collection_logo_spec.rb
@@ -13,7 +13,11 @@
let(:uploaded) { FactoryBot.create(:uploaded_file) }
it 'saves logo metadata' do
- expect(step.call(collection, update_logo_file_ids: [uploaded.id.to_s], alttext_values: ["Logo alt Text"], linkurl_values: ["http://abc.com"])).to be_success
+ expect(step.call(collection,
+ update_logo_file_ids: [uploaded.id.to_s],
+ alttext_values: ["Logo alt Text"],
+ linkurl_values: ["http://abc.com"],
+ logo_unchanged_indicator: false)).to be_success
expect(CollectionBrandingInfo
.where(collection_id: collection.id.to_s,
@@ -25,7 +29,11 @@
end
it 'does not save linkurl containing html; target_url is empty' do
- expect(step.call(collection, update_logo_file_ids: [uploaded.id.to_s], alttext_values: ["Logo alt Text"], linkurl_values: [""])).to be_success
+ expect(step.call(collection,
+ update_logo_file_ids: [uploaded.id.to_s],
+ alttext_values: ["Logo alt Text"],
+ linkurl_values: [""],
+ logo_unchanged_indicator: false)).to be_success
expect(
CollectionBrandingInfo.where(
@@ -36,7 +44,11 @@
end
it 'does not save linkurl containing dodgy protocol; target_url is empty' do
- expect(step.call(collection, update_logo_file_ids: [uploaded.id.to_s], alttext_values: ["Logo alt Text"], linkurl_values: ['javascript:alert("remove_me")'])).to be_success
+ expect(step.call(collection,
+ update_logo_file_ids: [uploaded.id.to_s],
+ alttext_values: ["Logo alt Text"],
+ linkurl_values: ['javascript:alert("remove_me")'],
+ logo_unchanged_indicator: false)).to be_success
expect(
CollectionBrandingInfo.where(