<?php
/**
* Pimcore Customer Management Framework Bundle
* Full copyright and license information is available in
* LICENSE.md which is distributed with this source code.
*
* @copyright Copyright (C) Elements.at New Media Solutions GmbH
* @license GPLv3
*/
namespace App\Form\FormConfigurator;
use Pimcore;
use Pimcore\Model\DataObject\Customer;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Form\Form;
use Pimcore\Model\Document\Tag\Area\Info;
use App\Document\Areabrick\AbstractAreabrick;
class TechnicalSupportRequestFormType extends AbstractFormType
{
protected $formLabel = 'Technical Support Request (Polygraph)';
/**
* @inheritDoc
*/
protected $emailDocumentPath = '/emails/polygraph/technical-support';
/**
* @inheritDoc
*/
protected $sendConfirmation = true;
protected $recaptcha = true;
/**
* @inheritDoc
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$translator = Pimcore::getContainer()->get('translator');
$customer = new Customer();
$prefixes = $customer->getClass()->getFieldDefinition('prefix');
$prefixOptions = [ $translator->trans('stoelting.forms.prefix.placeholder') => '' ];
foreach ($prefixes->getOptions() as $option) {
$prefixOptions[$option['key']] = $option['value'];
}
$builder->add(
'Prefix',
ChoiceType::class,
[
'label' => $translator->trans('stoelting.forms.prefix'),
'placeholder' => $translator->trans('stoelting.forms.prefix.placeholder'),
'multiple' => false,
'choices' => $prefixOptions,
'choice_attr' => function ($key, $val, $index) {
return empty($key) ? ['disabled' => 'disabled'] : [];
}
]
)
->add('Firstname', TextType::class, [
'label' => $translator->trans('stoelting.forms.firstname'),
'attr' => [
'placeholder' => $translator->trans('stoelting.forms.firstname.placeholder'),
],
'constraints' => [
new NotBlank([
'message' => $translator->trans('stoelting.forms.firstname.required.message'),
])
]
])
->add('Lastname', TextType::class, [
'label' => $translator->trans('stoelting.forms.lastname'),
'attr' => [
'placeholder' => $translator->trans('stoelting.forms.lastname.placeholder'),
],
'constraints' => [
new NotBlank([
'message' => $translator->trans('stoelting.forms.lastname.required.message'),
])
]
])
->add('Company', TextType::class, [
'label' => $translator->trans('stoelting.forms.company'),
'attr' => [
'placeholder' => $translator->trans('stoelting.forms.company.placeholder'),
]
])
->add('Country', TextType::class, [
'label' => $translator->trans('stoelting.forms.country'),
'attr' => [
'placeholder' => $translator->trans('stoelting.forms.country.placeholder'),
'readonly' => false
],
'constraints' => [
new NotBlank([
'message' => $translator->trans('stoelting.forms.country.required.message'),
])
]
])
->add('Email', EmailType::class, [
'label' => $translator->trans('stoelting.forms.email'),
'attr' => [
'placeholder' => $translator->trans('stoelting.forms.email.placeholder'),
'readonly' => false
],
'constraints' => [
new NotBlank([
'message' => $translator->trans('stoelting.forms.email.required.message'),
])
]
])
->add('Phone', TextType::class, [
'label' => $translator->trans('stoelting.forms.phone'),
'attr' => [
'placeholder' => $translator->trans('stoelting.forms.phone.placeholder'),
'readonly' => false
],
'constraints' => [
new NotBlank([
'message' => $translator->trans('stoelting.forms.phone.required.message'),
])
]
])
->add('Message', TextareaType::class, [
'label' => $translator->trans('stoelting.forms.message'),
'attr' => [
'placeholder' => $translator->trans('stoelting.forms.message.placeholder'),
'readonly' => false,
'rows' => 5,
'max' => 500
],
'constraints' => [
new NotBlank([
'message' => $translator->trans('stoelting.forms.message.required.message'),
])
]
])
->add('g-recaptcha-response', HiddenType::class, [
'attr' => [
'id' => 'g-recaptcha-response'
],
])
->add('action', HiddenType::class, [
'attr' => [
'id' => 'validate_captcha'
],
'data' => 'requestAQuoteNeuroForm'
])
->add('_submit', SubmitType::class, [
'label' => $translator->trans('stoelting.forms.send'),
'attr' => [
'class' => 'btn btn-primary',
'onclick' => 'onSubmit()'
]
]);
}
/**
* @inheritDoc
*/
public function getBlockPrefix()
{
return '';
}
/**
* @inheritDoc
*/
public function configureOptions(OptionsResolver $resolver)
{
}
}