Skip to content

Commit

Permalink
ability to skip the logo on save (#6903)
Browse files Browse the repository at this point in the history
* ability to skip the logo on save. making this default prevents accidentally deleting logos easily
  • Loading branch information
orangewolf committed Sep 19, 2024
1 parent 0a14163 commit e4886f1
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 6 deletions.
2 changes: 1 addition & 1 deletion .regen
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# When updating CI regen seed, set to current date.
2023-08-09T14:34:59
2024-09-09T14:34:59
3 changes: 2 additions & 1 deletion app/controllers/hyrax/dashboard/collections_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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) }
Expand Down
3 changes: 2 additions & 1 deletion lib/hyrax/transactions/steps/save_collection_logo.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
18 changes: 15 additions & 3 deletions spec/hyrax/transactions/steps/save_collection_logo_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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: ["<script>remove_me</script>"])).to be_success
expect(step.call(collection,
update_logo_file_ids: [uploaded.id.to_s],
alttext_values: ["Logo alt Text"],
linkurl_values: ["<script>remove_me</script>"],
logo_unchanged_indicator: false)).to be_success

expect(
CollectionBrandingInfo.where(
Expand All @@ -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(
Expand Down

0 comments on commit e4886f1

Please sign in to comment.