<?php
declare(strict_types=1);
namespace App\Form\EventSubscriber\MaxFirmware;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Contracts\Translation\TranslatorInterface;
class MaxFirmwareStaticFieldsSubscriber implements EventSubscriberInterface
{
public function __construct(private TranslatorInterface $translator)
{
}
public static function getSubscribedEvents(): array
{
return [FormEvents::PRE_SET_DATA => 'onPreSetData'];
}
public function onPreSetData(FormEvent $event): void
{
$form = $event->getForm();
$form
->add('unitType', TextType::class, [
'data' => 'max',
'constraints' => [
new NotBlank(['message' => $this->translator->trans('customStrings.form.firmware_management.unit_type_error')]),
],
])
->add('version', TextType::class, [
'constraints' => [
new NotBlank(['message' => $this->translator->trans('customStrings.form.firmware_management.version_error')]),
],
])
->add('description', TextareaType::class, [
'required' => false,
'attr' => ['rows' => 2],
])
->add('link', HiddenType::class, ['required' => false]);
}
}