MopaBootstrapBundle icon indicating copy to clipboard operation
MopaBootstrapBundle copied to clipboard

duplicate collection index if you delete an item and then add a new one

Open ychadwick opened this issue 10 years ago • 3 comments

When using the collection widget, with the mopaboostrap-collection.js you can end up with duplicate indexes which results in either errors when processing the form values, or data going missing.

Easy to reproduce:

  1. Start with a collection of 3 items
  2. Delete the first item
  3. Add a new item

You will see that the second and newly created third item will have the same index of [2].

They only way to use the widget in it's current form is to add all the new items you need, and then delete the ones you don't just before saving screen shot 2015-08-26 at 14 50 13

ychadwick avatar Aug 26 '15 12:08 ychadwick

One solution would be the ability to set the initial_size variable via a data attribute on the widget in php

....
$builder->add(
                'nice_email_collection_with_options',
                'collection',
                array(
                    'type' => 'email',
                    'attr' => array('data-collection-initial-size' => 3),
....

then using it in the collection plugin definition

$.fn.collection = function (option) {
        var coll_args = arguments;

...

    if($(collection_id).data('collection-initial-size')){
            options.initial_size = $(collection_id).data('collection-initial-size');
    }

ychadwick avatar Aug 26 '15 14:08 ychadwick

Why is this still a problem? Are there any workarounds for this?

metalmini avatar Nov 09 '17 10:11 metalmini

I assume because nobody has fixed it yet

isometriks avatar Nov 11 '17 23:11 isometriks