mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-07-13 11:54:32 +02:00
Fixed problems with non-unique prototype names when using nested collection type, which prevented to create nested entries with mulitple new sub entries.
We now use a unique prototype name for every collection field. This fixes issue #219
This commit is contained in:
parent
1e998fccbb
commit
9d1cd0477a
3 changed files with 25 additions and 2 deletions
|
@ -52,6 +52,9 @@ use Symfony\Component\Form\FormBuilderInterface;
|
|||
use Symfony\Component\Form\FormConfigBuilder;
|
||||
use Symfony\Component\Form\FormEvent;
|
||||
use Symfony\Component\Form\FormEvents;
|
||||
use Symfony\Component\Form\FormInterface;
|
||||
use Symfony\Component\Form\FormView;
|
||||
use Symfony\Component\OptionsResolver\Options;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
|
||||
|
||||
|
@ -87,11 +90,25 @@ class CollectionTypeExtension extends AbstractTypeExtension
|
|||
'reindex_path' => 'id',
|
||||
]);
|
||||
|
||||
//Set a unique prototype name, so that we can use nested collections
|
||||
$resolver->setDefaults([
|
||||
'prototype_name' => function (Options $options) {
|
||||
return '__name_'.uniqid("", false) . '__';
|
||||
},
|
||||
]);
|
||||
|
||||
$resolver->setAllowedTypes('reindex_enable', 'bool');
|
||||
$resolver->setAllowedTypes('reindex_prefix', 'string');
|
||||
$resolver->setAllowedTypes('reindex_path', 'string');
|
||||
}
|
||||
|
||||
public function finishView(FormView $view, FormInterface $form, array $options)
|
||||
{
|
||||
parent::finishView($view, $form, $options);
|
||||
//Add prototype name to view, so that we can pass it to the stimulus controller
|
||||
$view->vars['prototype_name'] = $options['prototype_name'];
|
||||
}
|
||||
|
||||
public function buildForm(FormBuilderInterface $builder, array $options): void
|
||||
{
|
||||
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($options): void {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue