Form Components Overview 

This article describes all form components that are stored in OroUIBundle. Form components are form types, data transformers, and event listeners.

Form Types 

  • Form / Type / OroDateType (name = oro_date) - encapsulates date element logic.

  • Form / Type / OroDateTimeType (name = oro_datetime) - encapsulates datetime element logic,

  • Form / Type / OroIconType (name = oro_icon_select) - provide icon selector (based on oro_select2_hidden), supports autocomplete.

  • Form / Type / EntityIdentifierType (name = oro_entity_identifier) - converts string or array of entity IDs to existing entities of specified type.

  • Form / Type / OroJquerySelect2HiddenType (name = oro_jqueryselect2_hidden) - supports autocompletion.

  • Form / Type / OroDurationType (name = oro_duration) - time duration field type, supports column style #:#:# and JIRA style #h #m #s time encodings.

Data Transformers 

  • Form / DataTransformer / ArrayToStringTransformer - converts array to string and back;

  • Form / DataTransformer / EntitiesToIdsTransformer - converts entity IDs to entities and back.

  • Form / DataTransformer / EntityToIdTransformer - converts entity ID to entity and back.

  • Form / DataTransformer / DurationToStringTransformer - converts numeric duration (in seconds) to string and back.

Event Subscribers 

  • Form / EventListener / FixArrayToStringListener - converts array to string on form PRE_SUBMIT event.

Configuration 

Form Types 

services:
    oro_form.type.date:
        class: Oro\Bundle\FormBundle\Form\Type\OroDateType
        tags:
            - { name: form.type, alias: oro_date }

    oro_form.type.datetime:
        class: Oro\Bundle\FormBundle\Form\Type\OroDateTimeType
        tags:
            - { name: form.type, alias: oro_datetime }

    oro_form.type.entity_identifier:
        class: Oro\Bundle\FormBundle\Form\Type\EntityIdentifierType
        tags:
            - { name: form.type, alias: oro_entity_identifier }
        arguments: ["@doctrine"]

    oro_form.type.jqueryselect2_hidden:
        class: Oro\Bundle\FormBundle\Form\Type\OroJquerySelect2HiddenType
        arguments:
            - '@doctrine.orm.entity_manager'
            - '@oro_form.autocomplete.configuration'
        tags:
            - { name: form.type, alias: oro_jqueryselect2_hidden }

    oro_form.type.duration:
        class: Oro\Bundle\FormBundle\Form\Type\OroDurationType
        tags:
            - { name: form.type, alias: oro_duration }