From 4aa81c359bc7d1870f6934ee69689d7d402b6393 Mon Sep 17 00:00:00 2001 From: timothe joubert Date: Mon, 9 Feb 2026 14:53:06 +0100 Subject: [PATCH] feat: update form structure --- lib/RoadizRozierBundle/src/Form/NodeType.php | 83 +++++++++++-------- .../app/assets/css/components/rz-fieldset.css | 1 + 2 files changed, 49 insertions(+), 35 deletions(-) diff --git a/lib/RoadizRozierBundle/src/Form/NodeType.php b/lib/RoadizRozierBundle/src/Form/NodeType.php index c9b05fd0b..0ae50bf6e 100644 --- a/lib/RoadizRozierBundle/src/Form/NodeType.php +++ b/lib/RoadizRozierBundle/src/Form/NodeType.php @@ -9,6 +9,7 @@ use RZ\Roadiz\CoreBundle\Security\Authorization\Voter\NodeVoter; use Symfony\Bundle\SecurityBundle\Security; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\NumberType; @@ -32,49 +33,55 @@ public function buildForm(FormBuilderInterface $builder, array $options): void $isReachable = null !== $node && $this->nodeTypesBag->get($node->getNodeTypeName())?->isReachable(); $isShadow = null !== $node && $node->isShadow(); - $builder->add('nodeName', TextType::class, [ + $nameGroup = $builder->create('groupName', FormType::class, [ + 'label' => false, + 'required' => false, + 'inherit_data' => true, + 'attr' => [ + 'class' => 'rz-form rz-form--horizontal', + ] + ])->add('nodeName', TextType::class, [ 'label' => 'nodeName', 'empty_data' => '', 'help' => 'node.nodeName.help', ]) - ->add('dynamicNodeName', CheckboxType::class, [ - 'label' => 'node.dynamicNodeName', - 'required' => false, - 'help' => 'dynamic_node_name_will_follow_any_title_change_on_default_translation', - 'disabled' => $isShadow, - ]) - ; - if ($isReachable) { - $builder->add('home', CheckboxType::class, [ - 'label' => 'node.isHome', - 'help' => 'node.isHome.help', - 'required' => false, - 'disabled' => $isShadow, - ]); - } + ->add('dynamicNodeName', CheckboxType::class, [ + 'label' => 'node.dynamicNodeName', + 'required' => false, + 'help' => 'dynamic_node_name_will_follow_any_title_change_on_default_translation', + 'disabled' => $isShadow, + ]); + + $builder->add($nameGroup); if ($this->security->isGranted(NodeVoter::EDIT_STATUS, $node)) { - $builder->add('visible', CheckboxType::class, [ - 'label' => 'node.visible', - 'help' => 'node.visible.help', - 'required' => false, - ]); - $builder->add('hideChildren', CheckboxType::class, [ - 'label' => 'node.hideChildren', - 'help' => 'node.hideChildren.help', - 'required' => false, - ]); - $builder->add('locked', CheckboxType::class, [ - 'label' => 'node.locked', - 'help' => 'node.locked.help', - 'required' => false, - 'disabled' => $isShadow, - ]); - $builder->add('shadow', CheckboxType::class, [ - 'label' => 'node.shadow', - 'help' => 'node.shadow.help', + $paramsGroup = $builder->create('parameters', FormType::class, [ + 'label' => 'node.parameters', 'required' => false, + 'inherit_data' => true, + 'attr' => [ + 'class' => 'rz-fieldset rz-fieldset--horizontal', + ] + ])->add('visible', CheckboxType::class, [ + 'label' => 'node.visible', + 'help' => 'node.visible.help', + 'required' => false, + ])->add('hideChildren', CheckboxType::class, [ + 'label' => 'node.hideChildren', + 'help' => 'node.hideChildren.help', + 'required' => false, + ])->add('locked', CheckboxType::class, [ + 'label' => 'node.locked', + 'help' => 'node.locked.help', + 'required' => false, + 'disabled' => $isShadow, + ])->add('shadow', CheckboxType::class, [ + 'label' => 'node.shadow', + 'help' => 'node.shadow.help', + 'required' => false, ]); + + $builder->add($paramsGroup); } $builder->add('childrenOrder', ChoiceType::class, [ @@ -96,6 +103,12 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'help' => 'node_time_to_live_cache_on_front_controller', 'disabled' => $isShadow, ]); + $builder->add('home', CheckboxType::class, [ + 'label' => 'node.isHome', + 'help' => 'node.isHome.help', + 'required' => false, + 'disabled' => $isShadow, + ]); } } diff --git a/lib/Rozier/app/assets/css/components/rz-fieldset.css b/lib/Rozier/app/assets/css/components/rz-fieldset.css index 2877af95d..18830fa00 100644 --- a/lib/Rozier/app/assets/css/components/rz-fieldset.css +++ b/lib/Rozier/app/assets/css/components/rz-fieldset.css @@ -33,6 +33,7 @@ .rz-fieldset--horizontal { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); + align-items: flex-start; } .rz-fieldset--minify {