Skip to content

Commit

Permalink
EZP-26878: Add "Default value" input field for Checkbox, Float, ISBN,… (
Browse files Browse the repository at this point in the history
ezsystems#119)

* EZP-26878: Add "Default value" input field for Checkbox, Float, ISBN, and Integer content definitions in EDIT mode

* EZP-26878: Replace TextLineValueTransformer in favor FieldValueTransformer in TextLineFormMapper
  • Loading branch information
adamwojs authored and andrerom committed May 19, 2017
1 parent b778596 commit 0c74771
Show file tree
Hide file tree
Showing 10 changed files with 162 additions and 121 deletions.
9 changes: 9 additions & 0 deletions bundle/Resources/config/services.yml
Expand Up @@ -132,6 +132,7 @@ services:
ezrepoforms.field_type.form_mapper.ezboolean:
class: "%ezrepoforms.field_type.form_mapper.ezboolean.class%"
tags:
- { name: ez.fieldFormMapper.definition, fieldType: ezboolean }
- { name: ez.fieldFormMapper.value, fieldType: ezboolean }
arguments:
- "@ezpublish.api.service.field_type"
Expand All @@ -154,21 +155,29 @@ services:

ezrepoforms.field_type.form_mapper.ezfloat:
class: "%ezrepoforms.field_type.form_mapper.ezfloat.class%"
arguments:
- "@ezpublish.api.service.field_type"
tags:
- { name: ez.fieldFormMapper.definition, fieldType: ezfloat }

ezrepoforms.field_type.form_mapper.ezimage:
class: "%ezrepoforms.field_type.form_mapper.ezimage.class%"
arguments:
- "@ezpublish.api.service.field_type"
tags:
- { name: ez.fieldFormMapper.definition, fieldType: ezimage }

ezrepoforms.field_type.form_mapper.ezinteger:
class: "%ezrepoforms.field_type.form_mapper.ezinteger.class%"
arguments:
- "@ezpublish.api.service.field_type"
tags:
- { name: ez.fieldFormMapper.definition, fieldType: ezinteger }

ezrepoforms.field_type.form_mapper.ezisbn:
class: "%ezrepoforms.field_type.form_mapper.ezisbn.class%"
arguments:
- "@ezpublish.api.service.field_type"
tags:
- { name: ez.fieldFormMapper.definition, fieldType: ezisbn }

Expand Down
24 changes: 24 additions & 0 deletions bundle/Resources/translations/ezrepoforms_content_type.en.xlf
Expand Up @@ -204,6 +204,12 @@
<note>key: field_definition.description</note>
<jms:reference-file line="84">lib/Form/Type/FieldDefinition/FieldDefinitionType.php</jms:reference-file>
</trans-unit>
<trans-unit id="5ae9eea988dc249d137d285ec360214b238efc26" resname="field_definition.ezboolean.default_value">
<source>Default value</source>
<target>Default value</target>
<note>key: field_definition.ezboolean.default_value</note>
<jms:reference-file line="43">lib/FieldType/Mapper/CheckboxFormMapper.php</jms:reference-file>
</trans-unit>
<trans-unit id="41f781284e4bae2abbb6cfdf1126cc90b48dd35b" resname="field_definition.ezbinaryfile.max_file_size">
<source>Maximum file size (MB)</source>
<target>Maximum file size (MB)</target>
Expand Down Expand Up @@ -276,6 +282,12 @@
<note>key: field_definition.ezdatetime.use_seconds</note>
<jms:reference-file line="28">lib/FieldType/Mapper/DateTimeFormMapper.php</jms:reference-file>
</trans-unit>
<trans-unit id="ed0d3cb0a19dd96c1708957f17e15204465c69b6" resname="field_definition.ezfloat.default_value">
<source>Default value</source>
<target>Default value</target>
<note>key: field_definition.ezfloat.default_value</note>
<jms:reference-file line="44">lib/FieldType/Mapper/FloatFormMapper.php</jms:reference-file>
</trans-unit>
<trans-unit id="8f6ec24986ca862e96867edc18aa490ff6035e56" resname="field_definition.ezfloat.max_value">
<source>Maximum value</source>
<target>Maximum value</target>
Expand All @@ -294,6 +306,12 @@
<note>key: field_definition.ezimage.max_file_size</note>
<jms:reference-file line="25">lib/FieldType/Mapper/ImageFormMapper.php</jms:reference-file>
</trans-unit>
<trans-unit id="8a95f664895f9c72e5ca52ea43908ad3d54c8966" resname="field_definition.ezinteger.default_value">
<source>Default value</source>
<target>Default value</target>
<note>key: field_definition.ezinteger.default_value</note>
<jms:reference-file line="44">lib/FieldType/Mapper/IntegerFormMapper.php</jms:reference-file>
</trans-unit>
<trans-unit id="7529d0af266c6893ae1886faf5578cf4d6d768aa" resname="field_definition.ezinteger.max_value">
<source>Maximum value</source>
<target>Maximum value</target>
Expand All @@ -306,6 +324,12 @@
<note>key: field_definition.ezinteger.min_value</note>
<jms:reference-file line="26">lib/FieldType/Mapper/IntegerFormMapper.php</jms:reference-file>
</trans-unit>
<trans-unit id="4afaf19544597331fbc0eb01e75556a312d657ec" resname="field_definition.ezisbn.default_value">
<source>Default value</source>
<target>Default value</target>
<note>key: field_definition.ezisbn.default_value</note>
<jms:reference-file line="38">lib/FieldType/Mapper/ISBNFormMapper.php</jms:reference-file>
</trans-unit>
<trans-unit id="461c05cd80b29eb37dc4f7e1f9e1d2454b380332" resname="field_definition.ezisbn.is_isbn13">
<source>ISBN-13 format</source>
<target>ISBN-13 format</target>
Expand Down
26 changes: 26 additions & 0 deletions bundle/Resources/views/ContentType/field_types.html.twig
Expand Up @@ -16,6 +16,14 @@
</div>
{% endblock %}

{% block ezboolean_field_definition_edit %}
<div class="ezboolean-default-value{% if group_class is not empty %} {{ group_class }}{% endif %}">
{{- form_label(form.defaultValue) -}}
{{- form_errors(form.defaultValue) -}}
{{- form_widget(form.defaultValue) -}}
</div>
{% endblock %}

{% block ezcountry_field_definition_edit %}
<div class="ezcountry-settings is-multiple{% if group_class is not empty %} {{ group_class }}{% endif %}">
{{- form_label(form.isMultiple) -}}
Expand Down Expand Up @@ -70,6 +78,12 @@
{{- form_errors(form.maxValue) -}}
{{- form_widget(form.maxValue) -}}
</div>

<div class="ezfloat-default-value{% if group_class is not empty %} {{ group_class }}{% endif %}">
{{- form_label(form.defaultValue) -}}
{{- form_errors(form.defaultValue) -}}
{{- form_widget(form.defaultValue) -}}
</div>
{% endblock %}

{% block ezimage_field_definition_edit %}
Expand All @@ -92,6 +106,12 @@
{{- form_errors(form.maxValue) -}}
{{- form_widget(form.maxValue) -}}
</div>

<div class="ezinteger-default-value{% if group_class is not empty %} {{ group_class }}{% endif %}">
{{- form_label(form.defaultValue) -}}
{{- form_errors(form.defaultValue) -}}
{{- form_widget(form.defaultValue) -}}
</div>
{% endblock %}

{% block ezisbn_field_definition_edit %}
Expand All @@ -100,6 +120,12 @@
{{- form_errors(form.isISBN13) -}}
{{- form_widget(form.isISBN13) -}}
</div>

<div class="ezisbn-default-value{% if group_class is not empty %} {{ group_class }}{% endif %}">
{{- form_label(form.defaultValue) -}}
{{- form_errors(form.defaultValue) -}}
{{- form_widget(form.defaultValue) -}}
</div>
{% endblock %}

{% block ezmedia_field_definition_edit %}
Expand Down
39 changes: 0 additions & 39 deletions lib/FieldType/DataTransformer/TextLineValueTransformer.php

This file was deleted.

21 changes: 20 additions & 1 deletion lib/FieldType/Mapper/CheckboxFormMapper.php
Expand Up @@ -10,12 +10,14 @@

use eZ\Publish\API\Repository\FieldTypeService;
use EzSystems\RepositoryForms\Data\Content\FieldData;
use EzSystems\RepositoryForms\Data\FieldDefinitionData;
use EzSystems\RepositoryForms\FieldType\DataTransformer\FieldValueTransformer;
use EzSystems\RepositoryForms\FieldType\FieldDefinitionFormMapperInterface;
use EzSystems\RepositoryForms\FieldType\FieldValueFormMapperInterface;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\FormInterface;

class CheckboxFormMapper implements FieldValueFormMapperInterface
class CheckboxFormMapper implements FieldDefinitionFormMapperInterface, FieldValueFormMapperInterface
{
/**
* @var \eZ\Publish\API\Repository\FieldTypeService
Expand All @@ -27,6 +29,23 @@ public function __construct(FieldTypeService $fieldTypeService)
$this->fieldTypeService = $fieldTypeService;
}

public function mapFieldDefinitionForm(FormInterface $fieldDefinitionForm, FieldDefinitionData $fieldDefinition)
{
$defaultValueForm = $fieldDefinitionForm
->getConfig()
->getFormFactory()
->createBuilder()
->create('defaultValue', CheckboxType::class, [
'required' => false,
'label' => 'field_definition.ezboolean.default_value',
])
->addModelTransformer(new FieldValueTransformer($this->fieldTypeService->getFieldType($fieldDefinition->getFieldTypeIdentifier())))
->setAutoInitialize(false)
->getForm();

$fieldDefinitionForm->add($defaultValueForm);
}

public function mapFieldValueForm(FormInterface $fieldForm, FieldData $data)
{
$fieldDefinition = $data->fieldDefinition;
Expand Down
29 changes: 27 additions & 2 deletions lib/FieldType/Mapper/FloatFormMapper.php
Expand Up @@ -8,16 +8,40 @@
*/
namespace EzSystems\RepositoryForms\FieldType\Mapper;

use eZ\Publish\API\Repository\FieldTypeService;
use EzSystems\RepositoryForms\Data\FieldDefinitionData;
use EzSystems\RepositoryForms\FieldType\DataTransformer\FieldValueTransformer;
use EzSystems\RepositoryForms\FieldType\FieldDefinitionFormMapperInterface;
use Symfony\Component\Form\Extension\Core\Type\NumberType;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

class FloatFormMapper implements FieldDefinitionFormMapperInterface
{
public function mapFieldDefinitionForm(FormInterface $fieldDefinitionForm, FieldDefinitionData $data)
/**
* @var \eZ\Publish\API\Repository\FieldTypeService
*/
private $fieldTypeService;

public function __construct(FieldTypeService $fieldTypeService)
{
$this->fieldTypeService = $fieldTypeService;
}

public function mapFieldDefinitionForm(FormInterface $fieldDefinitionForm, FieldDefinitionData $fieldDefinition)
{
$defaultValueForm = $fieldDefinitionForm
->getConfig()
->getFormFactory()
->createBuilder()
->create('defaultValue', NumberType::class, [
'required' => false,
'label' => 'field_definition.ezfloat.default_value',
])
->addModelTransformer(new FieldValueTransformer($this->fieldTypeService->getFieldType($fieldDefinition->getFieldTypeIdentifier())))
->setAutoInitialize(false)
->getForm();

$fieldDefinitionForm
->add(
'minValue', NumberType::class, [
Expand All @@ -32,7 +56,8 @@ public function mapFieldDefinitionForm(FormInterface $fieldDefinitionForm, Field
'property_path' => 'validatorConfiguration[FloatValueValidator][maxFloatValue]',
'label' => 'field_definition.ezfloat.max_value',
]
);
)
->add($defaultValueForm);
}

/**
Expand Down
30 changes: 28 additions & 2 deletions lib/FieldType/Mapper/ISBNFormMapper.php
Expand Up @@ -8,24 +8,50 @@
*/
namespace EzSystems\RepositoryForms\FieldType\Mapper;

use eZ\Publish\API\Repository\FieldTypeService;
use EzSystems\RepositoryForms\Data\FieldDefinitionData;
use EzSystems\RepositoryForms\FieldType\DataTransformer\FieldValueTransformer;
use EzSystems\RepositoryForms\FieldType\FieldDefinitionFormMapperInterface;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

class ISBNFormMapper implements FieldDefinitionFormMapperInterface
{
public function mapFieldDefinitionForm(FormInterface $fieldDefinitionForm, FieldDefinitionData $data)
/**
* @var \eZ\Publish\API\Repository\FieldTypeService
*/
private $fieldTypeService;

public function __construct(FieldTypeService $fieldTypeService)
{
$this->fieldTypeService = $fieldTypeService;
}

public function mapFieldDefinitionForm(FormInterface $fieldDefinitionForm, FieldDefinitionData $fieldDefinition)
{
$defaultValueForm = $fieldDefinitionForm
->getConfig()
->getFormFactory()
->createBuilder()
->create('defaultValue', TextType::class, [
'required' => false,
'label' => 'field_definition.ezisbn.default_value',
])
->addModelTransformer(new FieldValueTransformer($this->fieldTypeService->getFieldType($fieldDefinition->getFieldTypeIdentifier())))
->setAutoInitialize(false)
->getForm();

$fieldDefinitionForm
->add(
'isISBN13', CheckboxType::class, [
'required' => false,
'property_path' => 'fieldSettings[isISBN13]',
'label' => 'field_definition.ezisbn.is_isbn13',
]
);
)
->add($defaultValueForm);
}

/**
Expand Down
29 changes: 27 additions & 2 deletions lib/FieldType/Mapper/IntegerFormMapper.php
Expand Up @@ -8,16 +8,40 @@
*/
namespace EzSystems\RepositoryForms\FieldType\Mapper;

use eZ\Publish\API\Repository\FieldTypeService;
use EzSystems\RepositoryForms\Data\FieldDefinitionData;
use EzSystems\RepositoryForms\FieldType\DataTransformer\FieldValueTransformer;
use EzSystems\RepositoryForms\FieldType\FieldDefinitionFormMapperInterface;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\OptionsResolver\OptionsResolver;

class IntegerFormMapper implements FieldDefinitionFormMapperInterface
{
public function mapFieldDefinitionForm(FormInterface $fieldDefinitionForm, FieldDefinitionData $data)
/**
* @var \eZ\Publish\API\Repository\FieldTypeService
*/
private $fieldTypeService;

public function __construct(FieldTypeService $fieldTypeService)
{
$this->fieldTypeService = $fieldTypeService;
}

public function mapFieldDefinitionForm(FormInterface $fieldDefinitionForm, FieldDefinitionData $fieldDefinition)
{
$defaultValueForm = $fieldDefinitionForm
->getConfig()
->getFormFactory()
->createBuilder()
->create('defaultValue', IntegerType::class, [
'required' => false,
'label' => 'field_definition.ezinteger.default_value',
])
->addModelTransformer(new FieldValueTransformer($this->fieldTypeService->getFieldType($fieldDefinition->getFieldTypeIdentifier())))
->setAutoInitialize(false)
->getForm();

$fieldDefinitionForm
->add(
'minValue', IntegerType::class, [
Expand All @@ -32,7 +56,8 @@ public function mapFieldDefinitionForm(FormInterface $fieldDefinitionForm, Field
'property_path' => 'validatorConfiguration[IntegerValueValidator][maxIntegerValue]',
'label' => 'field_definition.ezinteger.max_value',
]
);
)
->add($defaultValueForm);
}

/**
Expand Down
3 changes: 1 addition & 2 deletions lib/FieldType/Mapper/TextLineFormMapper.php
Expand Up @@ -12,7 +12,6 @@
use EzSystems\RepositoryForms\Data\Content\FieldData;
use EzSystems\RepositoryForms\Data\FieldDefinitionData;
use EzSystems\RepositoryForms\FieldType\DataTransformer\FieldValueTransformer;
use EzSystems\RepositoryForms\FieldType\DataTransformer\TextLineValueTransformer;
use EzSystems\RepositoryForms\FieldType\FieldDefinitionFormMapperInterface;
use EzSystems\RepositoryForms\FieldType\FieldValueFormMapperInterface;
use Symfony\Component\Form\Extension\Core\Type\TextType;
Expand Down Expand Up @@ -54,7 +53,7 @@ public function mapFieldDefinitionForm(FormInterface $fieldDefinitionForm, Field
'required' => false,
'label' => 'field_definition.ezstring.default_value',
])
->addModelTransformer(new TextLineValueTransformer())
->addModelTransformer(new FieldValueTransformer($this->fieldTypeService->getFieldType($data->getFieldTypeIdentifier())))
// Deactivate auto-initialize as we're not on the root form.
->setAutoInitialize(false)->getForm()
);
Expand Down

0 comments on commit 0c74771

Please sign in to comment.