diff --git a/src/Bundle/ChillActivityBundle/Form/ActivityType.php b/src/Bundle/ChillActivityBundle/Form/ActivityType.php index 16e768bb2..05a3cac36 100644 --- a/src/Bundle/ChillActivityBundle/Form/ActivityType.php +++ b/src/Bundle/ChillActivityBundle/Form/ActivityType.php @@ -219,23 +219,25 @@ class ActivityType extends AbstractType ]); } - $builder->get('durationTime') - ->addModelTransformer($durationTimeTransformer); + foreach (['durationTime', 'travelTime'] as $fieldName) { + $builder->get($fieldName) + ->addModelTransformer($durationTimeTransformer); - $builder->get('durationTime') - ->addEventListener(FormEvents::PRE_SET_DATA, function(FormEvent $formEvent) use ( + $builder->get($fieldName) + ->addEventListener(FormEvents::PRE_SET_DATA, function(FormEvent $formEvent) use ( $timeChoices, $builder, $durationTimeTransformer, - $durationTimeOptions + $durationTimeOptions, + $fieldName ) { // set the timezone to GMT, and fix the difference between current and GMT // the datetimetransformer will then handle timezone as GMT $timezoneUTC = new \DateTimeZone('GMT'); /* @var $data \DateTime */ $data = $formEvent->getData() === NULL ? - \DateTime::createFromFormat('U', 300) : - $formEvent->getData(); + \DateTime::createFromFormat('U', 300) : + $formEvent->getData(); $seconds = $data->getTimezone()->getOffset($data); $data->setTimeZone($timezoneUTC); $data->add(new \DateInterval('PT'.$seconds.'S')); @@ -245,9 +247,8 @@ class ActivityType extends AbstractType if (!in_array($data->getTimestamp(), $timeChoices)) { // the data are not in the possible values. add them $timeChoices[$data->format('H:i')] = $data->getTimestamp(); - $form = $builder->create('durationTime', ChoiceType::class, array_merge( - $durationTimeOptions, - [ + $form = $builder->create($fieldName, ChoiceType::class, array_merge( + $durationTimeOptions, [ 'choices' => $timeChoices, 'auto_initialize' => false ] @@ -255,9 +256,12 @@ class ActivityType extends AbstractType $form->addModelTransformer($durationTimeTransformer); $formEvent->getForm()->getParent()->add($form->getForm()); } - }); + }); + } } + + public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([