<?php
namespace App\Form\Scholar;
use App\Entity\Scholar\PracticalCase\FilePracticalCaseResponse;
use App\Entity\Scholar\PracticalCase\PracticalCaseResponse;
use App\Form\Common\CustomFileType;
use Nellapp\Bundle\SDKBundle\Form\Common\NellappDurationType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class PracticalCaseResponseType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$enableCustomTime = $options['enableCustomTime'];
$builder
->add('content', TextareaType::class, [
'label' => 'practical_case_response.content.label',
'label_attr' => [
'class' => 'label-custom-practical small-margin-bottom'
],
'required' => true,
'attr' => [
'data-tinymce' => true,
'data-tinymce-height' => 150,
'data-lite' => true,
'placeholder' => 'practical_case_response.content.placeholder',
]
])
->add('file', CustomFileType::class, [
'data_class' => FilePracticalCaseResponse::class,
'label' => false,
'row_attr' => [
'class' => 'd-none'
],
'upload_endpoint' => 'practical_case_response_file',
'required' => false,
'mapped' => true,
'extensions' => [
'pdf',
'jpg',
'jpeg',
'png',
'mp4',
'zip',
'ppt',
'xls',
'doc'
],
]);
if ($enableCustomTime) {
$builder
->add('customTime', NellappDurationType::class, [
'label' => 'practical_case_response.custom_time.label',
'required' => false,
'property_path' => 'practicalCaseUser.customTime',
]);
}
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => PracticalCaseResponse::class,
'attr' => [
'id' => 'practical-case-response-form',
],
'enableCustomTime' => false,
]);
$resolver->setAllowedTypes('enableCustomTime', ['bool']);
}
}