io array option

This commit is contained in:
Benjamin Dalsass
2025-12-11 08:09:47 +01:00
parent 090925e28b
commit 2f36846d87
15 changed files with 139 additions and 73 deletions

View File

@@ -7,17 +7,16 @@
namespace Combodo\iTop\Forms\Block\DataModel;
use Combodo\iTop\Forms\Block\FormBlockException;
use Combodo\iTop\Forms\IO\Format\StringIOFormat;
use Combodo\iTop\Forms\Register\RegisterException;
use Combodo\iTop\Service\DependencyInjection\DIException;
use Combodo\iTop\Service\DependencyInjection\DIService;
use Combodo\iTop\Forms\Block\Base\ChoiceFormBlock;
use Combodo\iTop\Forms\Block\FormBlockException;
use Combodo\iTop\Forms\IO\Format\AttributeIOFormat;
use Combodo\iTop\Forms\IO\Format\AttributeTypeIOFormat;
use Combodo\iTop\Forms\IO\Format\ClassIOFormat;
use Combodo\iTop\Forms\Register\IORegister;
use Combodo\iTop\Forms\Register\OptionsRegister;
use ModelReflection;
use Combodo\iTop\Forms\Register\RegisterException;
use Combodo\iTop\Service\DependencyInjection\DIException;
use Combodo\iTop\Service\DependencyInjection\DIService;
use utils;
/**
@@ -40,19 +39,23 @@ class AttributeChoiceFormBlock extends ChoiceFormBlock
{
parent::RegisterOptions($oOptionsRegister);
$oOptionsRegister->SetOption('placeholder', 'Select an attribute...');
$oOptionsRegister->SetOption('choices', []);
}
/** @inheritdoc
* @throws \Combodo\iTop\Forms\Register\RegisterException
* @throws RegisterException
*/
protected function RegisterIO(IORegister $oIORegister): void
{
parent::RegisterIO($oIORegister);
$bMultiple = $this->GetOption('multiple');
$oIORegister->AddInput(self::INPUT_CLASS_NAME, ClassIOFormat::class);
$oIORegister->AddInput(self::INPUT_CATEGORY, StringIOFormat::class);
$oIORegister->AddInput(self::INPUT_CATEGORY, AttributeTypeIOFormat::class);
// Default value
$this->SetInputValue(self::INPUT_CATEGORY, '');
$oIORegister->AddOutput(self::OUTPUT_ATTRIBUTE, AttributeIOFormat::class);
$oIORegister->AddOutput(self::OUTPUT_ATTRIBUTE, AttributeIOFormat::class, $bMultiple);
}
/**

View File

@@ -7,13 +7,8 @@
namespace Combodo\iTop\Forms\Block\DataModel;
use AttributeClass;
use Combodo\iTop\Core\AttributeDefinition\AttributeBoolean;
use Combodo\iTop\Core\AttributeDefinition\AttributeDate;
use Combodo\iTop\Core\AttributeDefinition\AttributeEnum;
use Combodo\iTop\Core\AttributeDefinition\AttributeString;
use Combodo\iTop\Forms\IO\Format\AttributeTypeIOFormat;
use Combodo\iTop\Forms\Block\Base\ChoiceFormBlock;
use Combodo\iTop\Forms\IO\Format\AttributeTypeIOFormat;
use Combodo\iTop\Forms\Register\IORegister;
use Combodo\iTop\Forms\Register\OptionsRegister;
@@ -34,11 +29,10 @@ class AttributeTypeChoiceFormBlock extends ChoiceFormBlock
parent::RegisterOptions($oOptionsRegister);
$oOptionsRegister->SetOption('placeholder', 'Select a type...');
$oOptionsRegister->SetOption('choices', [
'enum' => AttributeEnum::class,
'string' => AttributeString::class,
'date' => AttributeDate::class,
'boolean' => AttributeBoolean::class,
'class' => AttributeClass::class,
'numeric' => 'numeric',
'group_by' => 'group_by',
'date' => 'date',
'enum' => 'enum',
]);
}

View File

@@ -7,13 +7,13 @@
namespace Combodo\iTop\Forms\Block\DataModel;
use Combodo\iTop\Service\DependencyInjection\DIService;
use Combodo\iTop\Forms\Block\Base\ChoiceFormBlock;
use Combodo\iTop\Forms\Block\FormBlockException;
use Combodo\iTop\Forms\IO\Format\AttributeIOFormat;
use Combodo\iTop\Forms\IO\Format\ClassIOFormat;
use Combodo\iTop\Forms\Register\IORegister;
use Combodo\iTop\Forms\Register\OptionsRegister;
use Combodo\iTop\Service\DependencyInjection\DIService;
use Exception;
/**
@@ -42,7 +42,7 @@ class AttributeValueChoiceFormBlock extends ChoiceFormBlock
{
parent::RegisterIO($oIORegister);
$oIORegister->AddInput(self::INPUT_CLASS_NAME, ClassIOFormat::class);
$oIORegister->AddInput(self::INPUT_ATTRIBUTE, AttributeIOFormat::class);
$oIORegister->AddInput(self::INPUT_ATTRIBUTE, AttributeIOFormat::class, true);
}
/**

View File

@@ -43,7 +43,7 @@ class OqlFormBlock extends TextAreaFormBlock
protected function RegisterIO(IORegister $oIORegister): void
{
parent::RegisterIO($oIORegister);
$oIORegister->AddOutput(self::OUTPUT_SELECTED_CLASS, ClassIOFormat::class, new OqlToClassConverter());
$oIORegister->AddOutput(self::OUTPUT_SELECTED_CLASS, ClassIOFormat::class, false, new OqlToClassConverter());
}
}