Skip to content

Commit

Permalink
BB-22832: Multifile attribute is shown on product visibility page in …
Browse files Browse the repository at this point in the history
…back-office - 5.1 (#36428)
  • Loading branch information
dsyrvachov committed Dec 6, 2023
1 parent e11920b commit 41c5264
Show file tree
Hide file tree
Showing 8 changed files with 452 additions and 27 deletions.
Expand Up @@ -2,7 +2,6 @@

namespace Oro\Bundle\ProductBundle\EventListener;

use Oro\Bundle\AttachmentBundle\Helper\FieldConfigHelper;
use Oro\Bundle\CMSBundle\DBAL\Types\WYSIWYGType;
use Oro\Bundle\EntityConfigBundle\Attribute\Entity\AttributeGroup;
use Oro\Bundle\EntityConfigBundle\Entity\FieldConfigModel;
Expand Down Expand Up @@ -198,14 +197,6 @@ protected function renderAttributeViewData(Environment $twig, $entity, FieldConf

protected function isSeparateGroup(?string $type): bool
{
return in_array(
(string)$type,
[
WYSIWYGType::TYPE,
FieldConfigHelper::MULTI_FILE_TYPE,
FieldConfigHelper::MULTI_IMAGE_TYPE
],
true
);
return in_array((string)$type, [WYSIWYGType::TYPE], true);
}
}
@@ -0,0 +1,25 @@
<?php

namespace Oro\Bundle\ProductBundle\EventListener;

use Oro\Bundle\UIBundle\Event\BeforeFormRenderEvent;

/**
* Stops adding additional fields or attributes to forms if they are on the specified pages
*/
class ProductMultiFileBlockListener
{
private array $pages = [];

public function setPages(array $pages): void
{
$this->pages = $pages;
}

public function onBeforeFormRender(BeforeFormRenderEvent $event): void
{
if (in_array($event->getPageId(), $this->pages)) {
$event->stopPropagation();
}
}
}
9 changes: 9 additions & 0 deletions src/Oro/Bundle/ProductBundle/Resources/config/services.yml
Expand Up @@ -1098,6 +1098,15 @@ services:
- { name: kernel.event_listener, event: oro_ui.scroll_data.before.product-create-step-two, method: onEdit, priority: -255 }
- { name: kernel.event_listener, event: oro_ui.scroll_data.before.product-view, method: onViewList, priority: -255 }

oro_product.event_listener.product_multi_file_block_listener:
class: Oro\Bundle\ProductBundle\EventListener\ProductMultiFileBlockListener
arguments:
- '@oro_entity_config.provider.entity'
calls:
- [setPages, [['product-visibility-edit', 'product-create-step-one']]]
tags:
- { name: kernel.event_listener, event: entity_form.render.before, method: onBeforeFormRender, priority: -250 }

oro_product.provider.product_variant_availability_provider:
class: 'Oro\Bundle\ProductBundle\Provider\ProductVariantAvailabilityProvider'
arguments:
Expand Down

0 comments on commit 41c5264

Please sign in to comment.