From 8c536761331088f73da5036a62ce7097e64c7c53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Fri, 16 Oct 2026 12:31:25 +0200 Subject: [PATCH] feat: let the remaining textareas grow with their content --- src/Form/AbstractFeedbackType.php | 13 ++++--------- src/Form/ApplicationStatusType.php | 7 ++----- src/Form/AssignmentType.php | 13 ++++--------- src/Form/DocumentCheckType.php | 9 +++------ src/Form/DriverLicenseCheckType.php | 7 ++----- src/Form/FaqType.php | 4 ++-- src/Form/FeedbackApproveType.php | 13 ++++--------- src/Form/NewsType.php | 7 ++----- src/Form/TeamerApplicationType.php | 7 ++----- src/Form/TeamerJobProfileType.php | 7 ++----- src/Form/WorkMonthReviewType.php | 7 ++----- 11 files changed, 29 insertions(+), 65 deletions(-) diff --git a/src/Form/AbstractFeedbackType.php b/src/Form/AbstractFeedbackType.php index 6cfddf3..85d10ca 100644 --- a/src/Form/AbstractFeedbackType.php +++ b/src/Form/AbstractFeedbackType.php @@ -5,7 +5,6 @@ namespace App\Form; use App\Entity\Feedback; use App\Entity\FeedbackSet; use Symfony\Component\Form\AbstractType; -use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormInterface; use Symfony\Component\OptionsResolver\OptionsResolver; @@ -24,20 +23,16 @@ abstract class AbstractFeedbackType extends AbstractType 'label' => false, 'feedback_set' => $feedbackSet, ]) - ->add('comment', TextareaType::class, [ + ->add('comment', AutosizeTextareaType::class, [ 'label' => 'Kommentar (öffentlich)', 'required' => false, - 'attr' => [ - 'rows' => 5, - ], + 'min_rows' => 5, 'help' => 'Bitte formuliere deinen Kommentar so, dass er an das Team weitergegeben werden kann', ]) - ->add('commentInternal', TextareaType::class, [ + ->add('commentInternal', AutosizeTextareaType::class, [ 'label' => 'Kommentar (intern)', 'required' => false, - 'attr' => [ - 'rows' => 5, - ], + 'min_rows' => 5, ]) ; } diff --git a/src/Form/ApplicationStatusType.php b/src/Form/ApplicationStatusType.php index 36f5b2a..9667ef9 100644 --- a/src/Form/ApplicationStatusType.php +++ b/src/Form/ApplicationStatusType.php @@ -7,7 +7,6 @@ use App\Model\ApplicationStatusDto; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; -use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; @@ -24,12 +23,10 @@ class ApplicationStatusType extends AbstractType 'neu' => Application::STATUS_NEW, ], ]) - ->add('comment', TextareaType::class, [ + ->add('comment', AutosizeTextareaType::class, [ 'label' => 'Kommentar/Begründung', 'required' => false, - 'attr' => [ - 'rows' => 3, - ], + 'min_rows' => 3, ]) ->add('commentVisible', CheckboxType::class, [ 'label' => 'Kommentar/Begründung sichtbar für Teamer:in', diff --git a/src/Form/AssignmentType.php b/src/Form/AssignmentType.php index 3088503..0a8905e 100644 --- a/src/Form/AssignmentType.php +++ b/src/Form/AssignmentType.php @@ -15,7 +15,6 @@ use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\IntegerType; -use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; @@ -73,23 +72,19 @@ class AssignmentType extends AbstractType ->where('job_profile.deletedAt IS NULL'); }, ]) - ->add('jobProfileInfo', TextareaType::class, [ + ->add('jobProfileInfo', AutosizeTextareaType::class, [ 'label' => 'Zusatzinfos', 'required' => false, - 'attr' => [ - 'rows' => 3, - ], + 'min_rows' => 3, ]) // ->add('pickupDate', DatepickerType::class, [ // 'label' => 'abweichender Zustieg bei Busbegleitung', // 'required' => false, // ]) - ->add('benefits', TextareaType::class, [ + ->add('benefits', AutosizeTextareaType::class, [ 'label' => 'Benefits', 'required' => false, - 'attr' => [ - 'rows' => 5, - ], + 'min_rows' => 5, ]) ->add('fees', EntityType::class, [ 'label' => 'Honorar(e)', diff --git a/src/Form/DocumentCheckType.php b/src/Form/DocumentCheckType.php index b17cbeb..a7dfc7d 100644 --- a/src/Form/DocumentCheckType.php +++ b/src/Form/DocumentCheckType.php @@ -6,7 +6,6 @@ use App\Entity\Upload; use App\Model\DocumentCheckDto; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; -use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; @@ -21,12 +20,10 @@ class DocumentCheckType extends AbstractType 'label' => 'neuer Status', 'choices' => $options['status_choices'][$options['document_type']], ]) - ->add('comment', TextareaType::class, [ + ->add('comment', AutosizeTextareaType::class, [ 'label' => 'Kommentar/Begründung', 'required' => false, - 'attr' => [ - 'rows' => 3, - ], + 'min_rows' => 3, ]) ->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) { /** @var DocumentCheckDto $data */ @@ -34,7 +31,7 @@ class DocumentCheckType extends AbstractType $upload = $data->getUpload(); if (Upload::TYPE_INVOICE === $upload->getType()) { - $event->getForm()->add('specialAgreements', TextareaType::class, [ + $event->getForm()->add('specialAgreements', AutosizeTextareaType::class, [ 'label' => 'zusätzliche Absprache', 'required' => false, ]); diff --git a/src/Form/DriverLicenseCheckType.php b/src/Form/DriverLicenseCheckType.php index e6d6bb7..25fa041 100644 --- a/src/Form/DriverLicenseCheckType.php +++ b/src/Form/DriverLicenseCheckType.php @@ -6,7 +6,6 @@ use App\Entity\Upload; use App\Model\DriverLicenseCheckDto; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; -use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; @@ -23,12 +22,10 @@ class DriverLicenseCheckType extends AbstractType 'abgelehnt' => Upload::STATUS_REJECTED, ], ]) - ->add('comment', TextareaType::class, [ + ->add('comment', AutosizeTextareaType::class, [ 'label' => 'Kommentar/Begründung', 'required' => false, - 'attr' => [ - 'rows' => 3, - ], + 'min_rows' => 3, ]) ; } diff --git a/src/Form/FaqType.php b/src/Form/FaqType.php index 26de8f2..6fa4e10 100644 --- a/src/Form/FaqType.php +++ b/src/Form/FaqType.php @@ -4,7 +4,6 @@ namespace App\Form; use App\Entity\Faq; use Symfony\Component\Form\AbstractType; -use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; @@ -17,8 +16,9 @@ class FaqType extends AbstractType ->add('question', TextType::class, [ 'label' => 'Frage', ]) - ->add('answer', TextareaType::class, [ + ->add('answer', AutosizeTextareaType::class, [ 'label' => 'Antwort', + 'min_rows' => 5, ]) ; } diff --git a/src/Form/FeedbackApproveType.php b/src/Form/FeedbackApproveType.php index 53f073b..033aa8e 100644 --- a/src/Form/FeedbackApproveType.php +++ b/src/Form/FeedbackApproveType.php @@ -4,7 +4,6 @@ namespace App\Form; use App\Entity\Feedback; use Symfony\Component\Form\AbstractType; -use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; @@ -13,19 +12,15 @@ class FeedbackApproveType extends AbstractType public function buildForm(FormBuilderInterface $builder, array $options): void { $builder - ->add('comment', TextareaType::class, [ + ->add('comment', AutosizeTextareaType::class, [ 'label' => 'Kommentar (öffentlich)', 'required' => false, - 'attr' => [ - 'rows' => 5, - ], + 'min_rows' => 5, ]) - ->add('commentInternal', TextareaType::class, [ + ->add('commentInternal', AutosizeTextareaType::class, [ 'label' => 'Kommentar (intern)', 'required' => false, - 'attr' => [ - 'rows' => 5, - ], + 'min_rows' => 5, ]) ; } diff --git a/src/Form/NewsType.php b/src/Form/NewsType.php index 3294ef4..f78a4f2 100644 --- a/src/Form/NewsType.php +++ b/src/Form/NewsType.php @@ -5,7 +5,6 @@ namespace App\Form; use App\Entity\News; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; -use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; @@ -22,11 +21,9 @@ class NewsType extends AbstractType 'label.news.status.2' => News::STATUS_IMPORTANT, ], ]) - ->add('message', TextareaType::class, [ + ->add('message', AutosizeTextareaType::class, [ 'label' => 'Nachricht', - 'attr' => [ - 'rows' => 5, - ], + 'min_rows' => 5, ]) ; } diff --git a/src/Form/TeamerApplicationType.php b/src/Form/TeamerApplicationType.php index d979207..1bb8313 100644 --- a/src/Form/TeamerApplicationType.php +++ b/src/Form/TeamerApplicationType.php @@ -7,7 +7,6 @@ use App\Service\Common\PickupOptions; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; -use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; @@ -19,12 +18,10 @@ class TeamerApplicationType extends AbstractType public function buildForm(FormBuilderInterface $builder, array $options): void { $builder - ->add('requests', TextareaType::class, [ + ->add('requests', AutosizeTextareaType::class, [ 'label' => 'Wünsche', 'required' => false, - 'attr' => [ - 'rows' => 3, - ], + 'min_rows' => 3, ]) ->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) { /** @var Application $application */ diff --git a/src/Form/TeamerJobProfileType.php b/src/Form/TeamerJobProfileType.php index 4932e23..38f61e3 100644 --- a/src/Form/TeamerJobProfileType.php +++ b/src/Form/TeamerJobProfileType.php @@ -7,7 +7,6 @@ use App\Entity\Teamer; use Doctrine\ORM\EntityRepository; use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\AbstractType; -use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Translation\TranslatableMessage; @@ -59,12 +58,10 @@ class TeamerJobProfileType extends AbstractType 'expanded' => true, 'multiple' => true, ]) - ->add('remarks', TextareaType::class, [ + ->add('remarks', AutosizeTextareaType::class, [ 'label' => 'Wünsche/Anmerkungen', 'required' => false, - 'attr' => [ - 'rows' => 3, - ], + 'min_rows' => 3, ]) ; } diff --git a/src/Form/WorkMonthReviewType.php b/src/Form/WorkMonthReviewType.php index 23f8697..6a7ddb8 100644 --- a/src/Form/WorkMonthReviewType.php +++ b/src/Form/WorkMonthReviewType.php @@ -6,7 +6,6 @@ use App\Enum\WorkMonthStatus; use App\Model\WorkMonthReviewDto; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; -use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; @@ -27,12 +26,10 @@ class WorkMonthReviewType extends AbstractType ], 'choice_value' => static fn (?WorkMonthStatus $status) => $status?->value, ]) - ->add('comment', TextareaType::class, [ + ->add('comment', AutosizeTextareaType::class, [ 'label' => 'Kommentar/Begründung', 'required' => false, - 'attr' => [ - 'rows' => 3, - ], + 'min_rows' => 3, ]) ; }