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(