diff --git a/css/backoffice/components/_form.scss b/css/backoffice/components/_form.scss index c732bebd8..8d1c289eb 100644 --- a/css/backoffice/components/_form.scss +++ b/css/backoffice/components/_form.scss @@ -75,3 +75,18 @@ collection-entry-element { resize: vertical; } +.ibo-form-compact{ + + .ibo-content-block{ + + display: flex; + flex-direction: column; + + label{ + width: 100%; + } + + } + +} + diff --git a/sources/Forms/Block/Base/FormBlock.php b/sources/Forms/Block/Base/FormBlock.php index a2baaf26d..5ee30429e 100644 --- a/sources/Forms/Block/Base/FormBlock.php +++ b/sources/Forms/Block/Base/FormBlock.php @@ -63,6 +63,7 @@ class FormBlock extends AbstractTypeFormBlock { parent::RegisterOptions($oOptionsRegister); $oOptionsRegister->SetOption('compound', true); + $oOptionsRegister->SetOption('display', 'cosy'); $oOptionsRegister->SetOptionArrayValue('attr', 'class', 'form'); } diff --git a/sources/Forms/Block/DataModel/OqlFormBlock.php b/sources/Forms/Block/DataModel/OqlFormBlock.php index 9112d57f6..a76c8c431 100644 --- a/sources/Forms/Block/DataModel/OqlFormBlock.php +++ b/sources/Forms/Block/DataModel/OqlFormBlock.php @@ -37,6 +37,8 @@ class OqlFormBlock extends TextAreaFormBlock { parent::RegisterOptions($oOptionsRegister); $oOptionsRegister->SetOption('with_ai_button', false); + $oOptionsRegister->SetOption('with_book_button', true); + $oOptionsRegister->SetOption('with_run_button', true); $oOptionsRegister->SetOptionArrayValue('attr', 'placeholder', 'SELECT Contact'); } diff --git a/sources/Forms/FormType/Base/FormType.php b/sources/Forms/FormType/Base/FormType.php index 26cff88cd..22add5349 100644 --- a/sources/Forms/FormType/Base/FormType.php +++ b/sources/Forms/FormType/Base/FormType.php @@ -13,6 +13,7 @@ use Combodo\iTop\Forms\FormType\FormTypeHelper; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormView; +use Symfony\Component\OptionsResolver\OptionsResolver; /** * Form type. @@ -28,14 +29,30 @@ class FormType extends AbstractType return \Symfony\Component\Form\Extension\Core\Type\FormType::class; } + public function configureOptions(OptionsResolver $resolver): void + { + parent::configureOptions($resolver); + + $resolver->setDefault('display', 'cosy'); + } + /** @inheritdoc */ - public function buildView(FormView $view, FormInterface $form, array $options) + public function buildView(FormView $view, FormInterface $form, array $options): void { parent::buildView($view, $form, $options); - /** @var FormBlock $oBlock */ - $oBlock = $options['form_block']; + $view->vars['blocks'] = $this->GetChildrenBlocks($options['form_block'], $form); + $view->vars['display'] = $options['display']; + } + /** + * @param FormBlock $oBlock + * @param FormInterface $form + * + * @return array + */ + private function GetChildrenBlocks(FormBlock $oBlock, FormInterface $form): array + { $aData = []; foreach ($oBlock->GetChildren() as $oChild) { if (!$oChild instanceof AbstractTypeFormBlock) { @@ -44,20 +61,21 @@ class FormType extends AbstractType if ($oChild->IsAdded()) { $aData[] = [ - 'name' => $oChild->GetName(), + 'name' => $oChild->GetName(), 'added' => $oChild->IsAdded(), - 'id' => FormTypeHelper::GetFormId($form).'_'.$oChild->GetName(), + 'id' => FormTypeHelper::GetFormId($form).'_'.$oChild->GetName(), ]; } else { $aData[] = [ - 'name' => $oChild->GetName(), + 'name' => $oChild->GetName(), 'added' => $oChild->IsAdded(), - 'id' => FormTypeHelper::GetFormId($form).'_'.$oChild->GetName(), + 'id' => FormTypeHelper::GetFormId($form).'_'.$oChild->GetName(), ]; } } - $view->vars['blocks'] = $aData; + + return $aData; } } diff --git a/sources/Forms/FormType/DataModel/OqlFormType.php b/sources/Forms/FormType/DataModel/OqlFormType.php index 7e6bf9262..6d6ca0282 100644 --- a/sources/Forms/FormType/DataModel/OqlFormType.php +++ b/sources/Forms/FormType/DataModel/OqlFormType.php @@ -21,23 +21,27 @@ use Symfony\Component\OptionsResolver\OptionsResolver; */ class OqlFormType extends AbstractType { - /** @inheritdoc */ + /** @inheritdoc */ public function getParent(): string { return TextareaType::class; } - /** @inheritdoc */ + /** @inheritdoc */ public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefined('with_ai_button'); + $resolver->setDefined('with_book_button'); + $resolver->setDefined('with_run_button'); } - /** @inheritdoc */ + /** @inheritdoc */ public function buildView(FormView $view, FormInterface $form, array $options): void { parent::buildView($view, $form, $options); $view->vars['with_ai_button'] = $options['with_ai_button']; + $view->vars['with_book_button'] = $options['with_book_button']; + $view->vars['with_run_button'] = $options['with_run_button']; } } diff --git a/templates/application/forms/itop_console_layout.html.twig b/templates/application/forms/itop_console_layout.html.twig index b9346d9db..12e337fd5 100644 --- a/templates/application/forms/itop_console_layout.html.twig +++ b/templates/application/forms/itop_console_layout.html.twig @@ -8,7 +8,7 @@ {%- else -%} {% set form_method = "POST" %} {%- endif -%} - {%- set attr = attr|merge({class: (attr.class|default('') ~ ' ibo-form')}) -%} + {%- set attr = attr|merge({class: (attr.class|default('') ~ ' ibo-form ibo-form-' ~ display)}) -%}
{%- if form_method != method -%} @@ -150,20 +150,24 @@ {%- block oql_form_widget -%}
- {% if with_ai_button is defined and with_ai_button %} + {% if with_ai_button %} {% endif %} + {% if with_run_button %} + {% endif %} + {% if with_book_button %} + {% endif %}
{%- endblock oql_form_widget -%}