Skip to content

Commit

Permalink
[Admin][Product] Add ProductAttribute autocomplete type
Browse files Browse the repository at this point in the history
  • Loading branch information
NoResponseMate authored and GSadee committed May 13, 2024
1 parent 2310f81 commit 480cfca
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?php

/*
* This file is part of the Sylius package.
*
* (c) Sylius Sp. z o.o.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

declare(strict_types=1);

namespace Sylius\Bundle\AdminBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\UX\Autocomplete\Form\AsEntityAutocompleteField;
use Symfony\UX\Autocomplete\Form\BaseEntityAutocompleteType;

#[AsEntityAutocompleteField(route: 'sylius_admin_entity_autocomplete_admin')]
final class ProductAttributeAutocompleteChoiceType extends AbstractType
{
public function __construct(
private readonly string $productAttributeClass,
) {
}

public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'class' => $this->productAttributeClass,
'choice_name' => 'name',
'choice_value' => 'code',
]);
}

public function getBlockPrefix(): string
{
return 'sylius_admin_product_attribute_autocomplete_choice';
}

public function getParent(): string
{
return BaseEntityAutocompleteType::class;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -115,16 +115,25 @@
<service id="sylius_admin.form.type.product_autocomplete_choice" class="Sylius\Bundle\AdminBundle\Form\Type\ProductAutocompleteChoiceType">
<argument>%sylius.model.product.class%</argument>
<tag name="form.type" />
<tag name="ux.entity_autocomplete_field" />
</service>

<service id="sylius_admin.form.type.product_variant_autocomplete_choice" class="Sylius\Bundle\AdminBundle\Form\Type\ProductVariantAutocompleteChoiceType">
<argument>%sylius.model.product_variant.class%</argument>
<tag name="form.type" />
<tag name="ux.entity_autocomplete_field" />
</service>

<service id="sylius_admin.form.type.taxon_autocomplete_choice" class="Sylius\Bundle\AdminBundle\Form\Type\TaxonAutocompleteChoiceType">
<argument>%sylius.model.taxon.class%</argument>
<tag name="form.type" />
<tag name="ux.entity_autocomplete_field" />
</service>

<service id="sylius_admin.form.type.product_attribute_choice" class="Sylius\Bundle\AdminBundle\Form\Type\ProductAttributeAutocompleteChoiceType">
<argument>%sylius.model.product_attribute.class%</argument>
<tag name="form.type" />
<tag name="ux.entity_autocomplete_field" />
</service>

<service id="Sylius\Bundle\AdminBundle\Form\RequestPasswordResetType">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
name="product_attributes"
data-model="selectedAttributeCodes"
{{ stimulus_controller('product-attribute-autocomplete', {
url: path('sylius_admin_entity_autocomplete_admin', { alias: 'product_attribute', 'extra_options': extraOptions }),
url: path('sylius_admin_entity_autocomplete_admin', { alias: 'product_attribute_autocomplete_choice_type', 'extra_options': extraOptions }),
selectedAttributeCodes: selectedAttributeCodes|join(','),
}) }}
/>
Expand Down

0 comments on commit 480cfca

Please sign in to comment.