isGlobal(); if (!$isGlobal) { $project = $entry->getProject(); $customer = $project->getCustomer(); $options['currency'] = $customer->getCurrency(); } $isNew = $entry->getId() === null; } $builder ->add('name', TextType::class, [ 'label' => 'name', 'attr' => [ 'autofocus' => 'autofocus' ], ]) ->add('comment', TextareaType::class, [ 'label' => 'description', 'required' => false, ]) ->add('invoiceText', InvoiceLabelType::class) ; if ($isNew || !$isGlobal) { $builder ->add('project', ProjectType::class, [ 'required' => false, 'help' => 'help.globalActivity', 'query_builder' => function (ProjectRepository $repo) use ($builder, $project, $customer) { $query = new ProjectFormTypeQuery($project, $customer); $query->setUser($builder->getOption('user')); $query->setIgnoreDate(true); $query->setWithCustomer(true); return $repo->getQueryBuilderForFormType($query); }, ]); } if ($isNew) { $builder ->add('teams', TeamType::class, [ 'required' => false, 'multiple' => true, 'expanded' => false, 'by_reference' => false, 'help' => 'help.teams', ]); } $this->addCommonFields($builder, $options); } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([ 'data_class' => Activity::class, 'csrf_protection' => true, 'csrf_field_name' => '_token', 'csrf_token_id' => 'admin_activity_edit', 'currency' => Customer::DEFAULT_CURRENCY, 'include_budget' => false, 'include_time' => false, 'attr' => [ 'data-form-event' => 'kimai.activityUpdate' ], ]); } }