mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-21 17:48:43 +02:00
N°8771 - Add Symfony form component to iTop core
- WIP
This commit is contained in:
@@ -473,6 +473,16 @@ return array(
|
||||
'Combodo\\iTop\\Form\\Validator\\MultipleChoicesValidator' => $baseDir . '/sources/Form/Validator/MultipleChoicesValidator.php',
|
||||
'Combodo\\iTop\\Form\\Validator\\NotEmptyExtKeyValidator' => $baseDir . '/sources/Form/Validator/NotEmptyExtKeyValidator.php',
|
||||
'Combodo\\iTop\\Form\\Validator\\SelectObjectValidator' => $baseDir . '/sources/Form/Validator/SelectObjectValidator.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\AbstractFormBlock' => $baseDir . '/sources/Forms/Block/AbstractFormBlock.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\Base\\ChoiceFormBlock' => $baseDir . '/sources/Forms/Block/Base/ChoiceFormBlock.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\Base\\StringFormBlock' => $baseDir . '/sources/Forms/Block/Base/StringFormBlock.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\DataModel\\AttributeChoiceFormBlock' => $baseDir . '/sources/Forms/Block/DataModel/AttributeChoiceFormBlock.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\DataModel\\OqlFormBlock' => $baseDir . '/sources/Forms/Block/DataModel/OqlFormBlock.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\FormBlock' => $baseDir . '/sources/Forms/Block/FormBlock.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\FormInput' => $baseDir . '/sources/Forms/Block/FormInput.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\FormOutput' => $baseDir . '/sources/Forms/Block/FormOutput.php',
|
||||
'Combodo\\iTop\\Forms\\Converter\\AbstractConverter' => $baseDir . '/sources/Forms/Converter/AbstractConverter.php',
|
||||
'Combodo\\iTop\\Forms\\Converter\\OqlToClassName' => $baseDir . '/sources/Forms/Converter/OqlToClassName.php',
|
||||
'Combodo\\iTop\\Forms\\Dependency\\DependencyDescription' => $baseDir . '/sources/Forms/Dependency/DependencyDescription.php',
|
||||
'Combodo\\iTop\\Forms\\Dependency\\DependencyHandler' => $baseDir . '/sources/Forms/Dependency/DependencyHandler.php',
|
||||
'Combodo\\iTop\\Forms\\FormBuilder\\FormBuilder' => $baseDir . '/sources/Forms/FormBuilder/FormBuilder.php',
|
||||
|
||||
@@ -854,6 +854,16 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
|
||||
'Combodo\\iTop\\Form\\Validator\\MultipleChoicesValidator' => __DIR__ . '/../..' . '/sources/Form/Validator/MultipleChoicesValidator.php',
|
||||
'Combodo\\iTop\\Form\\Validator\\NotEmptyExtKeyValidator' => __DIR__ . '/../..' . '/sources/Form/Validator/NotEmptyExtKeyValidator.php',
|
||||
'Combodo\\iTop\\Form\\Validator\\SelectObjectValidator' => __DIR__ . '/../..' . '/sources/Form/Validator/SelectObjectValidator.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\AbstractFormBlock' => __DIR__ . '/../..' . '/sources/Forms/Block/AbstractFormBlock.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\Base\\ChoiceFormBlock' => __DIR__ . '/../..' . '/sources/Forms/Block/Base/ChoiceFormBlock.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\Base\\StringFormBlock' => __DIR__ . '/../..' . '/sources/Forms/Block/Base/StringFormBlock.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\DataModel\\AttributeChoiceFormBlock' => __DIR__ . '/../..' . '/sources/Forms/Block/DataModel/AttributeChoiceFormBlock.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\DataModel\\OqlFormBlock' => __DIR__ . '/../..' . '/sources/Forms/Block/DataModel/OqlFormBlock.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\FormBlock' => __DIR__ . '/../..' . '/sources/Forms/Block/FormBlock.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\FormInput' => __DIR__ . '/../..' . '/sources/Forms/Block/FormInput.php',
|
||||
'Combodo\\iTop\\Forms\\Block\\FormOutput' => __DIR__ . '/../..' . '/sources/Forms/Block/FormOutput.php',
|
||||
'Combodo\\iTop\\Forms\\Converter\\AbstractConverter' => __DIR__ . '/../..' . '/sources/Forms/Converter/AbstractConverter.php',
|
||||
'Combodo\\iTop\\Forms\\Converter\\OqlToClassName' => __DIR__ . '/../..' . '/sources/Forms/Converter/OqlToClassName.php',
|
||||
'Combodo\\iTop\\Forms\\Dependency\\DependencyDescription' => __DIR__ . '/../..' . '/sources/Forms/Dependency/DependencyDescription.php',
|
||||
'Combodo\\iTop\\Forms\\Dependency\\DependencyHandler' => __DIR__ . '/../..' . '/sources/Forms/Dependency/DependencyHandler.php',
|
||||
'Combodo\\iTop\\Forms\\FormBuilder\\FormBuilder' => __DIR__ . '/../..' . '/sources/Forms/FormBuilder/FormBuilder.php',
|
||||
|
||||
@@ -4,6 +4,7 @@ namespace Combodo\iTop\Forms\Block;
|
||||
|
||||
abstract class AbstractFormBlock
|
||||
{
|
||||
private string $sName;
|
||||
|
||||
private array $aOptions = [];
|
||||
|
||||
@@ -13,9 +14,17 @@ abstract class AbstractFormBlock
|
||||
|
||||
private array $aFormOutputs = [];
|
||||
|
||||
public function __construct(array $aOptions = [])
|
||||
public function __construct(string $sName, array $aOptions = [])
|
||||
{
|
||||
$this->sName = $sName;
|
||||
$this->aOptions = $aOptions;
|
||||
|
||||
$this->InitInputs();
|
||||
$this->InitOutputs();
|
||||
}
|
||||
|
||||
public function GetName(){
|
||||
return $this->sName;
|
||||
}
|
||||
|
||||
public function GetOptions(): array
|
||||
@@ -53,5 +62,8 @@ abstract class AbstractFormBlock
|
||||
return $this->aFormOutputs[$sName];
|
||||
}
|
||||
|
||||
abstract public function GetFormType(): string;
|
||||
|
||||
abstract public function InitInputs(): void;
|
||||
abstract public function InitOutputs(): void;
|
||||
}
|
||||
@@ -3,14 +3,12 @@
|
||||
namespace Combodo\iTop\Forms\Block\Base;
|
||||
|
||||
use Combodo\iTop\Forms\Block\FormBlock;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
|
||||
class ChoiceFormBlock extends FormBlock
|
||||
{
|
||||
|
||||
public function __construct(array $aOptions = [])
|
||||
public function GetFormType(): string
|
||||
{
|
||||
parent::__construct($aOptions);
|
||||
return ChoiceType::class;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -3,9 +3,13 @@
|
||||
namespace Combodo\iTop\Forms\Block\Base;
|
||||
|
||||
use Combodo\iTop\Forms\Block\FormBlock;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
|
||||
class StringFormBlock extends FormBlock
|
||||
{
|
||||
|
||||
|
||||
public function GetFormType(): string
|
||||
{
|
||||
return TextType::class;
|
||||
}
|
||||
}
|
||||
@@ -2,17 +2,15 @@
|
||||
|
||||
namespace Combodo\iTop\Forms\Block\DataModel;
|
||||
|
||||
use Combodo\iTop\Forms\Block\FormBlock;
|
||||
use Combodo\iTop\Forms\Block\Base\ChoiceFormBlock;
|
||||
use Combodo\iTop\Forms\Block\FormInput;
|
||||
|
||||
class AttributeChoiceFormBlock extends FormBlock
|
||||
class AttributeChoiceFormBlock extends ChoiceFormBlock
|
||||
{
|
||||
|
||||
|
||||
public function __construct(array $aOptions = [])
|
||||
public function InitInputs(): void
|
||||
{
|
||||
parent::__construct($aOptions);
|
||||
|
||||
$this->AddInput(new FormInput('class_name', 'string'));
|
||||
}
|
||||
|
||||
|
||||
@@ -2,20 +2,15 @@
|
||||
|
||||
namespace Combodo\iTop\Forms\Block\DataModel;
|
||||
|
||||
use Combodo\iTop\Forms\Block\FormBlock;
|
||||
use Combodo\iTop\Forms\Block\Base\StringFormBlock;
|
||||
use Combodo\iTop\Forms\Block\FormOutput;
|
||||
|
||||
class OqlFormBlock extends FormBlock
|
||||
class OqlFormBlock extends StringFormBlock
|
||||
{
|
||||
|
||||
|
||||
public function __construct(array $aOptions = [])
|
||||
public function InitOutputs(): void
|
||||
{
|
||||
parent::__construct($aOptions);
|
||||
|
||||
$this->AddOutput(new FormOutput('selected_class', 'string'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -2,9 +2,37 @@
|
||||
|
||||
namespace Combodo\iTop\Forms\Block;
|
||||
|
||||
use Symfony\Component\Form\Extension\Core\Type\FormType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\Form\FormInterface;
|
||||
|
||||
class FormBlock extends AbstractFormBlock
|
||||
{
|
||||
public function __construct(string $sName, array $aOptions = [])
|
||||
{
|
||||
parent::__construct($sName, $aOptions);
|
||||
}
|
||||
|
||||
|
||||
public function GetFormType(): string
|
||||
{
|
||||
return FormType::class;
|
||||
}
|
||||
|
||||
public function InitInputs(): void
|
||||
{
|
||||
}
|
||||
|
||||
public function InitOutputs(): void
|
||||
{
|
||||
}
|
||||
|
||||
public function Build(FormBuilderInterface $oBuilder): FormInterface
|
||||
{
|
||||
foreach ($this->GetSubFormBlocks() as $oSubForm) {
|
||||
$oBuilder->add($oSubForm->GetName(), $oSubForm->GetFormType(), $oSubForm->GetOptions());
|
||||
}
|
||||
|
||||
return $oBuilder->getForm();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user