mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
N°6041 - Improve readability of the API
This commit is contained in:
@@ -1653,16 +1653,22 @@ abstract class AbstractPortalUIExtension implements iPortalUIExtension
|
||||
interface iFieldRendererMappingsExtension
|
||||
{
|
||||
/**
|
||||
* @return array {string, string, string} List of field renderer mapping: FQCN field class, FQCN Form Renderer class, FQCN Field Renderer class
|
||||
* @return array {
|
||||
* array: {
|
||||
* field: string,
|
||||
* form_renderer: string,
|
||||
* field_renderer: string
|
||||
* }
|
||||
* } List of field renderer mapping: FQCN field class, FQCN Form Renderer class, FQCN Field Renderer class
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* ```php
|
||||
* [
|
||||
* ['FQCN\FieldA', 'Combodo\iTop\Renderer\Console\ConsoleFormRenderer', 'FQCN\FieldRendererA'],
|
||||
* ['FQCN\FieldB', 'Combodo\iTop\Renderer\Console\ConsoleFormRenderer', 'FQCN\FieldRendererB'],
|
||||
* ['FQCN\FieldA', 'Combodo\iTop\Renderer\Bootstrap\BsFormRenderer', 'FQCN\FieldRendererA'],
|
||||
* ['FQCN\FieldB', 'Combodo\iTop\Renderer\Bootstrap\BsFormRenderer', 'FQCN\FieldRendererB'],
|
||||
* ['field' => 'FQCN\FieldA', 'form_renderer' => 'Combodo\iTop\Renderer\Console\ConsoleFormRenderer', 'field_renderer' => 'FQCN\FieldRendererA'],
|
||||
* ['field' => 'FQCN\FieldB', 'form_renderer' => 'Combodo\iTop\Renderer\Console\ConsoleFormRenderer', 'field_renderer' => 'FQCN\FieldRendererB'],
|
||||
* ['field' => 'FQCN\FieldA', 'form_renderer' => 'Combodo\iTop\Renderer\Bootstrap\BsFormRenderer', 'field_renderer' => 'FQCN\FieldRendererA'],
|
||||
* ['field' => 'FQCN\FieldB', 'form_renderer' => 'Combodo\iTop\Renderer\Bootstrap\BsFormRenderer', 'field_renderer' => 'FQCN\FieldRendererB'],
|
||||
* ]
|
||||
* ```
|
||||
*/
|
||||
|
||||
@@ -54,119 +54,119 @@ class BsFieldRendererMappings implements iFieldRendererMappingsExtension
|
||||
{
|
||||
return [
|
||||
[
|
||||
HiddenField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => HiddenField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
LabelField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => LabelField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
PasswordField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => PasswordField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
StringField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => StringField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
UrlField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => UrlField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
EmailField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => EmailField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
PhoneField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => PhoneField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
TextAreaField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => TextAreaField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
CaseLogField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => CaseLogField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
SelectField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => SelectField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
MultipleSelectField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => MultipleSelectField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
RadioField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => RadioField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
CheckboxField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => CheckboxField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
SubFormField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSubFormFieldRenderer::class,
|
||||
'field' => SubFormField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSubFormFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
SelectObjectField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSelectObjectFieldRenderer::class,
|
||||
'field' => SelectObjectField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSelectObjectFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
LinkedSetField::class,
|
||||
BsFormRenderer::class,
|
||||
BsLinkedSetFieldRenderer::class,
|
||||
'field' => LinkedSetField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsLinkedSetFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
SetField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSetFieldRenderer::class,
|
||||
'field' => SetField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSetFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
TagSetField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSetFieldRenderer::class,
|
||||
'field' => TagSetField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSetFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
DateTimeField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => DateTimeField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
DurationField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => DurationField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
FileUploadField::class,
|
||||
BsFormRenderer::class,
|
||||
BsFileUploadFieldRenderer::class,
|
||||
'field' => FileUploadField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsFileUploadFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
BlobField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => BlobField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
ImageField::class,
|
||||
BsFormRenderer::class,
|
||||
BsSimpleFieldRenderer::class,
|
||||
'field' => ImageField::class,
|
||||
'form_renderer' => BsFormRenderer::class,
|
||||
'field_renderer' => BsSimpleFieldRenderer::class,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
@@ -38,54 +38,54 @@ class ConsoleFieldRendererMappings implements iFieldRendererMappingsExtension
|
||||
{
|
||||
return [
|
||||
[
|
||||
HiddenField::class,
|
||||
ConsoleFormRenderer::class,
|
||||
ConsoleSimpleFieldRenderer::class,
|
||||
'field' => HiddenField::class,
|
||||
'form_renderer' => ConsoleFormRenderer::class,
|
||||
'field_renderer' => ConsoleSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
LabelField::class,
|
||||
ConsoleFormRenderer::class,
|
||||
ConsoleSimpleFieldRenderer::class,
|
||||
'field' => LabelField::class,
|
||||
'form_renderer' => ConsoleFormRenderer::class,
|
||||
'field_renderer' => ConsoleSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
StringField::class,
|
||||
ConsoleFormRenderer::class,
|
||||
ConsoleSimpleFieldRenderer::class,
|
||||
'field' => StringField::class,
|
||||
'form_renderer' => ConsoleFormRenderer::class,
|
||||
'field_renderer' => ConsoleSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
SelectField::class,
|
||||
ConsoleFormRenderer::class,
|
||||
ConsoleSimpleFieldRenderer::class,
|
||||
'field' => SelectField::class,
|
||||
'form_renderer' => ConsoleFormRenderer::class,
|
||||
'field_renderer' => ConsoleSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
TextAreaField::class,
|
||||
ConsoleFormRenderer::class,
|
||||
ConsoleSimpleFieldRenderer::class,
|
||||
'field' => TextAreaField::class,
|
||||
'form_renderer' => ConsoleFormRenderer::class,
|
||||
'field_renderer' => ConsoleSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
RadioField::class,
|
||||
ConsoleFormRenderer::class,
|
||||
ConsoleSimpleFieldRenderer::class,
|
||||
'field' => RadioField::class,
|
||||
'form_renderer' => ConsoleFormRenderer::class,
|
||||
'field_renderer' => ConsoleSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
DurationField::class,
|
||||
ConsoleFormRenderer::class,
|
||||
ConsoleSimpleFieldRenderer::class,
|
||||
'field' => DurationField::class,
|
||||
'form_renderer' => ConsoleFormRenderer::class,
|
||||
'field_renderer' => ConsoleSimpleFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
SelectObjectField::class,
|
||||
ConsoleFormRenderer::class,
|
||||
ConsoleSelectObjectFieldRenderer::class,
|
||||
'field' => SelectObjectField::class,
|
||||
'form_renderer' => ConsoleFormRenderer::class,
|
||||
'field_renderer' => ConsoleSelectObjectFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
SubFormField::class,
|
||||
ConsoleFormRenderer::class,
|
||||
ConsoleSubFormFieldRenderer::class,
|
||||
'field' => SubFormField::class,
|
||||
'form_renderer' => ConsoleFormRenderer::class,
|
||||
'field_renderer' => ConsoleSubFormFieldRenderer::class,
|
||||
],
|
||||
[
|
||||
DateTimeField::class,
|
||||
ConsoleFormRenderer::class,
|
||||
ConsoleSimpleFieldRenderer::class,
|
||||
'field' => DateTimeField::class,
|
||||
'form_renderer' => ConsoleFormRenderer::class,
|
||||
'field_renderer' => ConsoleSimpleFieldRenderer::class,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
@@ -61,8 +61,14 @@ abstract class FormRenderer
|
||||
/** @var \iFieldRendererMappingsExtension $sImplementingClass */
|
||||
foreach (utils::GetClassesForInterface(iFieldRendererMappingsExtension::class, '', ['[\\\\/]lib[\\\\/]', '[\\\\/]node_modules[\\\\/]', '[\\\\/]test[\\\\/]', '[\\\\/]tests[\\\\/]']) as $sImplementingClass) {
|
||||
$aFieldRendererMappings = $sImplementingClass::RegisterSupportedFields();
|
||||
foreach ($aFieldRendererMappings as list($sFieldClass, $sFormRendererClass, $sFieldRendererClass)) {
|
||||
if ($sFormRendererClass !== static::class) {
|
||||
// For each mapping we need to check if it can be registered for the current form renderer or not
|
||||
foreach ($aFieldRendererMappings as $aFieldRendererMapping) {
|
||||
$sFieldClass = $aFieldRendererMapping['field'];
|
||||
$sFormRendererClass = $aFieldRendererMapping['form_renderer'];
|
||||
$sFieldRendererClass = $aFieldRendererMapping['field_renderer'];
|
||||
|
||||
// Mapping not concerning current form renderer, skip it
|
||||
if (false === is_a(static::class, $sFormRendererClass, true)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user