diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 96027ff82..1d5aedb4a 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -1,4 +1,5 @@ 7.10.12 + - fixed #12072: Product, related and accessory assets 7.10.11 - fixed #12057: WebGUI::Search, assetIds search clause diff --git a/lib/WebGUI/Asset/Sku/Product.pm b/lib/WebGUI/Asset/Sku/Product.pm index cf338db8b..418ba207b 100644 --- a/lib/WebGUI/Asset/Sku/Product.pm +++ b/lib/WebGUI/Asset/Sku/Product.pm @@ -1796,34 +1796,42 @@ sub view { $var{'addaccessory_url'} = $self->getUrl('func=addAccessory'); $var{'addaccessory_label'} = $i18n->get(36); ##Need an id for collateral operations, and an assetId for asset instantiation. - foreach my $collateral ( @{ $self->getAllCollateral('accessoryJSON') } ) { + ACCESSORY: foreach my $collateral ( @{ $self->getAllCollateral('accessoryJSON') } ) { my $id = $collateral->{accessoryAssetId}; $segment = $self->session->icon->delete('func=deleteAccessoryConfirm&aid='.$id,$self->get('url'),$i18n->get(2)) . $self->session->icon->moveUp('func=moveAccessoryUp&aid='.$id,$self->get('url')) . $self->session->icon->moveDown('func=moveAccessoryDown&aid='.$id,$self->get('url')); + my $accessory_vars = { + accessory_title => $i18n->get('Lost'), + accessory_controls => $segment, + }; my $accessory = WebGUI::Asset->newByDynamicClass($session, $collateral->{accessoryAssetId}); - push(@accessoryloop,{ - 'accessory_URL' => $accessory->getUrl, - 'accessory_title' => $accessory->getTitle, - 'accessory_controls' => $segment, - }); + if ( $accessory ) { + $accessory_vars->{ accessory_URL } = $accessory->getUrl; + $accessory_vars->{ accessory_title } = $accessory->getTitle; + } + push(@accessoryloop, $accessory_vars); } $var{accessory_loop} = \@accessoryloop; #---related $var{'addrelatedproduct_url'} = $self->getUrl('func=addRelated'); $var{'addrelatedproduct_label'} = $i18n->get(37); - foreach my $collateral ( @{ $self->getAllCollateral('relatedJSON')} ) { + RELATED: foreach my $collateral ( @{ $self->getAllCollateral('relatedJSON')} ) { my $id = $collateral->{relatedAssetId}; $segment = $self->session->icon->delete('func=deleteRelatedConfirm&rid='.$id, $self->get('url'),$i18n->get(4)) . $self->session->icon->moveUp('func=moveRelatedUp&rid='.$id, $self->get('url')) . $self->session->icon->moveDown('func=moveRelatedDown&rid='.$id, $self->get('url')); + my $related_vars = { + relatedproduct_title => $i18n->get('Lost'), + relatedproduct_controls => $segment, + }; my $related = WebGUI::Asset->newByDynamicClass($session, $collateral->{relatedAssetId}); - push(@relatedloop,{ - 'relatedproduct_URL' => $related->getUrl, - 'relatedproduct_title' => $related->getTitle, - 'relatedproduct_controls' => $segment, - }); + if ($related) { + $related_vars->{ relatedproduct_URL } = $related->getUrl; + $related_vars->{ relatedproduct_title } = $related->getTitle; + } + push(@relatedloop, $related_vars); } $var{relatedproduct_loop} = \@relatedloop; diff --git a/lib/WebGUI/i18n/English/Asset_Product.pm b/lib/WebGUI/i18n/English/Asset_Product.pm index df0b5223c..b53fce822 100644 --- a/lib/WebGUI/i18n/English/Asset_Product.pm +++ b/lib/WebGUI/i18n/English/Asset_Product.pm @@ -864,6 +864,12 @@ be useful, others may not.|, context => q|A set of links or icons to edit or alter the object.| }, + 'Lost' => { + message => q|Asset lost|, + lastUpdated => 0, + context => q|A message indicating that the asset used by the Product as collateral has been lost. Lost as in missing/deleted.| + }, + }; 1;