![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/WebhookBundle/Form/Type/ |
<?php namespace Mautic\WebhookBundle\Form\Type; use Doctrine\Common\Collections\Criteria; use Mautic\CategoryBundle\Form\Type\CategoryListType; use Mautic\CoreBundle\Form\EventListener\CleanFormSubscriber; use Mautic\CoreBundle\Form\Type\FormButtonsType; use Mautic\CoreBundle\Form\Type\YesNoButtonGroupType; use Mautic\CoreBundle\Helper\EncryptionHelper; use Mautic\WebhookBundle\Entity\Webhook; use Mautic\WebhookBundle\Form\DataTransformer\EventsToArrayTransformer; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ButtonType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\UrlType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; /** * @extends AbstractType<Webhook> */ class WebhookType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->addEventSubscriber(new CleanFormSubscriber(['description' => 'strict_html'])); /** @var Webhook $webhook */ $webhook = $builder->getData(); $builder->add( 'name', TextType::class, [ 'label' => 'mautic.core.name', 'label_attr' => ['class' => 'control-label'], 'attr' => ['class' => 'form-control'], 'required' => true, ] ); $builder->add( 'description', TextareaType::class, [ 'label' => 'mautic.webhook.form.description', 'required' => false, 'attr' => [ 'class' => 'form-control', ], ] ); $builder->add( 'webhookUrl', UrlType::class, [ 'label' => 'mautic.webhook.form.webhook_url', 'label_attr' => ['class' => 'control-label'], 'attr' => ['class' => 'form-control'], 'required' => true, ] ); $builder->add( 'secret', TextType::class, [ 'label' => 'mautic.webhook.form.secret', 'label_attr' => ['class' => 'control-label'], 'attr' => [ 'class' => 'form-control', 'tooltip' => 'mautic.webhook.secret.tooltip', ], 'data' => $webhook->getSecret() ?? EncryptionHelper::generateKey(), 'required' => false, ] ); $events = $options['events']; $choices = []; foreach ($events as $type => $event) { $choices[$event['label']] = $type; } $builder->add( 'events', ChoiceType::class, [ 'choices' => $choices, 'multiple' => true, 'expanded' => true, 'label' => 'mautic.webhook.form.webhook.events', 'label_attr' => ['class' => 'control-label'], 'attr' => ['class' => ''], ] ); $builder->get('events')->addModelTransformer(new EventsToArrayTransformer($options['data'])); $builder->add('buttons', FormButtonsType::class); $builder->add( 'sendTest', ButtonType::class, [ 'attr' => ['class' => 'btn btn-success', 'onclick' => 'Mautic.sendHookTest(this)'], 'label' => 'mautic.webhook.send.test.payload', ] ); $builder->add( 'category', CategoryListType::class, [ 'bundle' => 'Webhook', ] ); $builder->add('isPublished', YesNoButtonGroupType::class); $builder->add( 'eventsOrderbyDir', ChoiceType::class, [ 'choices' => [ 'mautic.webhook.config.event.orderby.chronological' => Criteria::ASC, 'mautic.webhook.config.event.orderby.reverse.chronological' => Criteria::DESC, ], 'label' => 'mautic.webhook.config.event.orderby', 'attr' => [ 'class' => 'form-control', 'tooltip' => 'mautic.webhook.config.event.orderby.tooltip', ], 'placeholder' => 'mautic.core.form.default', 'required' => false, ] ); } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults( [ 'data_class' => Webhook::class, ] ); $resolver->setDefined(['events']); } }