mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-12 13:24:25 +00:00
fix error when adding customfield choice
This commit is contained in:
parent
a43dc3733f
commit
cacf6d0f3a
@ -157,7 +157,7 @@ class CustomFieldChoice extends AbstractCustomField
|
||||
->add(self::OTHER_VALUE_LABEL, TranslatableStringFormType::class, array(
|
||||
'label' => 'Other value label (empty if use by default)'))
|
||||
->add(self::CHOICES, ChoicesType::class, array(
|
||||
'entry_type' => new ChoicesListType($this->defaultLocales),
|
||||
'entry_type' => ChoicesListType::class,
|
||||
'allow_add' => true
|
||||
));
|
||||
|
||||
|
@ -13,38 +13,24 @@ use Chill\MainBundle\Form\Type\TranslatableStringFormType;
|
||||
class ChoicesListType extends AbstractType
|
||||
{
|
||||
|
||||
private $defaultLocales;
|
||||
|
||||
public function __construct($defaultLocales)
|
||||
{
|
||||
$this->defaultLocales = $defaultLocales;
|
||||
}
|
||||
|
||||
/* (non-PHPdoc)
|
||||
* @see \Symfony\Component\Form\AbstractType::buildForm()
|
||||
*/
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$locales = $this->defaultLocales;
|
||||
|
||||
$builder->add('name', TranslatableStringFormType::class)
|
||||
->add('active', CheckboxType::class, array(
|
||||
'required' => false
|
||||
))
|
||||
->add('slug', HiddenType::class, array(
|
||||
|
||||
))
|
||||
->addEventListener(FormEvents::SUBMIT, function(FormEvent $event) use ($locales){
|
||||
->add('slug', HiddenType::class)
|
||||
->addEventListener(FormEvents::SUBMIT, function(FormEvent $event) {
|
||||
$form = $event->getForm();
|
||||
$data = $event->getData();
|
||||
|
||||
$formData = $form->getData();
|
||||
|
||||
if (NULL === $formData['slug']) {
|
||||
$slug = $form['name'][$locales[0]]->getData();
|
||||
$slug = strtolower($slug);
|
||||
$slug = preg_replace('/[^a-zA-Z0-9 -]/','', $slug); // only take alphanumerical characters, but keep the spaces and dashes too...
|
||||
$slug = str_replace(' ','-', $slug); // replace spaces by dashes
|
||||
$slug = uniqid(rand(), true);
|
||||
|
||||
$data['slug'] = $slug;
|
||||
$event->setData($data);
|
||||
|
@ -52,9 +52,9 @@
|
||||
{# we use javascrit to add an additional element. All functions are personnalized with the id ( = form.vars.id) #}
|
||||
<script type="text/javascript">
|
||||
function addElementInDiv(div_id) {
|
||||
var div = $('#' + div_id);
|
||||
var prototype = div.data('prototype');
|
||||
var index = div.data('index');
|
||||
var div = $('#' + div_id);console.log(div);
|
||||
var prototype = div.data('prototype');console.log(prototype);
|
||||
var index = div.data('index');console.log(index);
|
||||
var add_element_link = $('#' + div_id + '_add_element_link');
|
||||
var new_fields = prototype.replace(/__name__label__/g, index);
|
||||
var new_fields = prototype.replace(/__name__/g, index);
|
||||
@ -68,7 +68,8 @@
|
||||
var add_element_link = $('<a id="' + div_id + '_add_element_link"" href="#" class="sc-button bt-submit">{{ 'Add an element'|trans }}</a>');
|
||||
var div = $('#' + div_id);
|
||||
div.append(add_element_link);
|
||||
div.data('index', div.find(':input').length / 5);
|
||||
div.data('index', div.find('td').length);
|
||||
console.log(div.data('index'));
|
||||
|
||||
add_element_link.on('click', function (e) {
|
||||
e.preventDefault();
|
||||
|
Loading…
x
Reference in New Issue
Block a user