diff --git a/UPGRADE-2.1.md b/UPGRADE-2.1.md index 8994fdc78a..cdb7e81a73 100644 --- a/UPGRADE-2.1.md +++ b/UPGRADE-2.1.md @@ -310,7 +310,7 @@ themes. The "field_widget" and all references to it should be renamed to - "form_widget_single_control": + "form_widget_simple": Before: @@ -329,7 +329,7 @@ {% block url_widget %} {% spaceless %} {% set type = type|default('url') %} - {{ block('form_widget_single_control') }} + {{ block('form_widget_simple') }} {% endspaceless %} {% endblock url_widget %} ``` @@ -337,7 +337,7 @@ All other "field_*" blocks and references to them should be renamed to "form_*". If you previously defined both a "field_*" and a "form_*" block, you can merge them into a single "form_*" block and check the new - Boolean variable "single_control": + Boolean variable "compound": Before: @@ -360,10 +360,10 @@ ``` {% block form_errors %} {% spaceless %} - {% if single_control %} - ... field code ... - {% else %} + {% if compound %} ... form code ... + {% else %} + ... field code ... {% endif %} {% endspaceless %} {% endblock form_errors %} @@ -487,7 +487,7 @@ You can access all other methods on the `FormConfigInterface` object instead. Instead of `getChildren` and `hasChildren`, you should now use `all` and - `count` instead. + `count`. Before: @@ -609,7 +609,7 @@ * No options are passed to `getParent()` of `FormTypeInterface` anymore. If you previously dynamically inherited from FormType or FieldType, you can now - dynamically set the "single_control" option instead. + dynamically set the "compound" option instead. Before: @@ -625,12 +625,12 @@ ``` public function setDefaultOptions(OptionsResolverInterface $resolver) { - $singleControl = function (Options $options) { - return !$options['expanded']; + $compound = function (Options $options) { + return $options['expanded']; }; $resolver->setDefaults(array( - 'single_control' => $singleControl, + 'compound' => $compound, )); } diff --git a/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig b/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig index e26610f5d3..bff18c6e1a 100644 --- a/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig +++ b/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig @@ -2,20 +2,20 @@ {% block form_widget %} {% spaceless %} - {% if single_control %} - {{ block('form_widget_single_control') }} - {% else %} + {% if compound %} {{ block('form_widget_compound') }} + {% else %} + {{ block('form_widget_simple') }} {% endif %} {% endspaceless %} {% endblock form_widget %} -{% block form_widget_single_control %} +{% block form_widget_simple %} {% spaceless %} {% set type = type|default('text') %} {% endspaceless %} -{% endblock form_widget_single_control %} +{% endblock form_widget_simple %} {% block form_widget_compound %} {% spaceless %} @@ -112,7 +112,7 @@ {% block datetime_widget %} {% spaceless %} {% if widget == 'single_text' %} - {{ block('form_widget_single_control') }} + {{ block('form_widget_simple') }} {% else %}
{{ form_errors(form.date) }} @@ -127,7 +127,7 @@ {% block date_widget %} {% spaceless %} {% if widget == 'single_text' %} - {{ block('form_widget_single_control') }} + {{ block('form_widget_simple') }} {% else %}
{{ date_pattern|replace({ @@ -143,7 +143,7 @@ {% block time_widget %} {% spaceless %} {% if widget == 'single_text' %} - {{ block('form_widget_single_control') }} + {{ block('form_widget_simple') }} {% else %}
{{ form_widget(form.hour, { 'attr': { 'size': '1' } }) }}:{{ form_widget(form.minute, { 'attr': { 'size': '1' } }) }}{% if with_seconds %}:{{ form_widget(form.second, { 'attr': { 'size': '1' } }) }}{% endif %} @@ -156,62 +156,62 @@ {% spaceless %} {# type="number" doesn't work with floats #} {% set type = type|default('text') %} - {{ block('form_widget_single_control') }} + {{ block('form_widget_simple') }} {% endspaceless %} {% endblock number_widget %} {% block integer_widget %} {% spaceless %} {% set type = type|default('number') %} - {{ block('form_widget_single_control') }} + {{ block('form_widget_simple') }} {% endspaceless %} {% endblock integer_widget %} {% block money_widget %} {% spaceless %} - {{ money_pattern|replace({ '{{ widget }}': block('form_widget_single_control') })|raw }} + {{ money_pattern|replace({ '{{ widget }}': block('form_widget_simple') })|raw }} {% endspaceless %} {% endblock money_widget %} {% block url_widget %} {% spaceless %} {% set type = type|default('url') %} - {{ block('form_widget_single_control') }} + {{ block('form_widget_simple') }} {% endspaceless %} {% endblock url_widget %} {% block search_widget %} {% spaceless %} {% set type = type|default('search') %} - {{ block('form_widget_single_control') }} + {{ block('form_widget_simple') }} {% endspaceless %} {% endblock search_widget %} {% block percent_widget %} {% spaceless %} {% set type = type|default('text') %} - {{ block('form_widget_single_control') }} % + {{ block('form_widget_simple') }} % {% endspaceless %} {% endblock percent_widget %} {% block password_widget %} {% spaceless %} {% set type = type|default('password') %} - {{ block('form_widget_single_control') }} + {{ block('form_widget_simple') }} {% endspaceless %} {% endblock password_widget %} {% block hidden_widget %} {% spaceless %} {% set type = type|default('hidden') %} - {{ block('form_widget_single_control') }} + {{ block('form_widget_simple') }} {% endspaceless %} {% endblock hidden_widget %} {% block email_widget %} {% spaceless %} {% set type = type|default('email') %} - {{ block('form_widget_single_control') }} + {{ block('form_widget_simple') }} {% endspaceless %} {% endblock email_widget %} @@ -219,7 +219,7 @@ {% block form_label %} {% spaceless %} - {% if single_control %} + {% if not compound %} {% set label_attr = label_attr|merge({'for': id}) %} {% endif %} {% if required %} @@ -245,7 +245,7 @@ If the child is a compound form, the errors are rendered inside the container. See also block form_rows. #} - {% if single_control %} + {% if not compound %} {{ form_errors(form) }} {% endif %} {{ form_widget(form) }} @@ -320,7 +320,7 @@ {% block generic_label %}{{ block('form_label') }}{% endblock %} {% block widget_choice_options %}{{ block('choice_widget_options') }}{% endblock %} -{% block field_widget %}{{ block('form_widget_single_control') }}{% endblock %} +{% block field_widget %}{{ block('form_widget_simple') }}{% endblock %} {% block field_label %}{{ block('form_label') }}{% endblock %} {% block field_row %}{{ block('form_row') }}{% endblock %} {% block field_enctype %}{{ block('form_enctype') }}{% endblock %} diff --git a/src/Symfony/Bridge/Twig/Resources/views/Form/form_table_layout.html.twig b/src/Symfony/Bridge/Twig/Resources/views/Form/form_table_layout.html.twig index b3a9558283..fbfe96adcf 100644 --- a/src/Symfony/Bridge/Twig/Resources/views/Form/form_table_layout.html.twig +++ b/src/Symfony/Bridge/Twig/Resources/views/Form/form_table_layout.html.twig @@ -7,7 +7,7 @@ {{ form_label(form, label|default(null)) }} - {% if single_control %} + {% if not compound %} {{ form_errors(form) }} {% endif %} {{ form_widget(form) }} @@ -18,7 +18,7 @@ {% block form_errors %} {% spaceless %} - {% if single_control %} + {% if not compound %} {{ parent() }} {% else %} {% if errors|length > 0 %} diff --git a/src/Symfony/Bridge/Twig/Tests/Extension/theme.html.twig b/src/Symfony/Bridge/Twig/Tests/Extension/theme.html.twig index 36f8636ad2..da1c1b649b 100644 --- a/src/Symfony/Bridge/Twig/Tests/Extension/theme.html.twig +++ b/src/Symfony/Bridge/Twig/Tests/Extension/theme.html.twig @@ -1,6 +1,6 @@ -{% block form_widget_single_control %} +{% block form_widget_simple %} {% spaceless %} {% set type = type|default('text') %} {% endspaceless %} -{% endblock form_widget_single_control %} +{% endblock form_widget_simple %} diff --git a/src/Symfony/Bridge/Twig/Tests/Extension/theme_extends.html.twig b/src/Symfony/Bridge/Twig/Tests/Extension/theme_extends.html.twig index 12b9da872d..8c719867ec 100644 --- a/src/Symfony/Bridge/Twig/Tests/Extension/theme_extends.html.twig +++ b/src/Symfony/Bridge/Twig/Tests/Extension/theme_extends.html.twig @@ -1,8 +1,8 @@ {% extends 'form_div_layout.html.twig' %} -{% block form_widget_single_control %} +{% block form_widget_simple %} {% spaceless %} {% set type = type|default('text') %} {% endspaceless %} -{% endblock form_widget_single_control %} +{% endblock form_widget_simple %} diff --git a/src/Symfony/Bridge/Twig/Tests/Extension/theme_use.html.twig b/src/Symfony/Bridge/Twig/Tests/Extension/theme_use.html.twig index 1b7f6b59cf..d485b8d0e7 100644 --- a/src/Symfony/Bridge/Twig/Tests/Extension/theme_use.html.twig +++ b/src/Symfony/Bridge/Twig/Tests/Extension/theme_use.html.twig @@ -1,8 +1,8 @@ {% use 'form_div_layout.html.twig' %} -{% block form_widget_single_control %} +{% block form_widget_simple %} {% spaceless %} {% set type = type|default('text') %} {% endspaceless %} -{% endblock form_widget_single_control %} +{% endblock form_widget_simple %} diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/date_widget.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/date_widget.html.php index 338e8edfed..439443c7b0 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/date_widget.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/date_widget.html.php @@ -1,5 +1,5 @@ - renderBlock('form_widget_single_control'); ?> + renderBlock('form_widget_simple'); ?>
renderBlock('widget_container_attributes') ?>> - renderBlock('form_widget_single_control'); ?> + renderBlock('form_widget_simple'); ?>
renderBlock('widget_container_attributes') ?>> widget($form['date']).' '.$view['form']->widget($form['time']) ?> diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/email_widget.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/email_widget.html.php index 80409c0a30..0ef4d9dcde 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/email_widget.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/email_widget.html.php @@ -1 +1 @@ -renderBlock('form_widget_single_control', array('type' => isset($type) ? $type : 'email')) ?> +renderBlock('form_widget_simple', array('type' => isset($type) ? $type : 'email')) ?> diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/field_widget.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/field_widget.html.php index 9bce25bd9d..2621130b14 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/field_widget.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/field_widget.html.php @@ -1 +1 @@ -renderBlock('form_widget_single_control') ?> +renderBlock('form_widget_simple') ?> diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_label.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_label.html.php index e236122065..c8f7947173 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_label.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_label.html.php @@ -1,3 +1,3 @@ - + diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_row.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_row.html.php index 977a272257..6f994156aa 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_row.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_row.html.php @@ -1,6 +1,6 @@
label($form, isset($label) ? $label : null) ?> - + errors($form) ?> widget($form) ?> diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_widget.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_widget.html.php index 98d1a80be7..0e634184e3 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_widget.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_widget.html.php @@ -1,5 +1,5 @@ - -renderBlock('form_widget_single_control')?> - + renderBlock('form_widget_compound')?> + +renderBlock('form_widget_simple')?> diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_widget_single_control.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_widget_simple.html.php similarity index 100% rename from src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_widget_single_control.html.php rename to src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/form_widget_simple.html.php diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/hidden_widget.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/hidden_widget.html.php index d7395a4857..7dc71ae228 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/hidden_widget.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/hidden_widget.html.php @@ -1 +1 @@ -renderBlock('form_widget_single_control', array('type' => isset($type) ? $type : "hidden")) ?> +renderBlock('form_widget_simple', array('type' => isset($type) ? $type : "hidden")) ?> diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/integer_widget.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/integer_widget.html.php index dc2866fd20..14000a5ee5 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/integer_widget.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/integer_widget.html.php @@ -1 +1 @@ -renderBlock('form_widget_single_control', array('type' => isset($type) ? $type : "number")) ?> +renderBlock('form_widget_simple', array('type' => isset($type) ? $type : "number")) ?> diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/money_widget.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/money_widget.html.php index 17279721c5..6c84a871aa 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/money_widget.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/money_widget.html.php @@ -1 +1 @@ -renderBlock('form_widget_single_control'), $money_pattern) ?> +renderBlock('form_widget_simple'), $money_pattern) ?> diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/number_widget.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/number_widget.html.php index 3d6fd62209..c3344d8bd7 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/number_widget.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/number_widget.html.php @@ -1 +1 @@ -renderBlock('form_widget_single_control', array('type' => isset($type) ? $type : "text")) ?> +renderBlock('form_widget_simple', array('type' => isset($type) ? $type : "text")) ?> diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/password_widget.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/password_widget.html.php index 716e46cf60..ab0bcafae5 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/password_widget.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/password_widget.html.php @@ -1 +1 @@ -renderBlock('form_widget_single_control', array('type' => isset($type) ? $type : "password")) ?> +renderBlock('form_widget_simple', array('type' => isset($type) ? $type : "password")) ?> diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/percent_widget.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/percent_widget.html.php index 5446968baf..38b51c091d 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/percent_widget.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/percent_widget.html.php @@ -1 +1 @@ -renderBlock('form_widget_single_control', array('type' => isset($type) ? $type : "text")) ?> % +renderBlock('form_widget_simple', array('type' => isset($type) ? $type : "text")) ?> % diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/search_widget.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/search_widget.html.php index ca3b00917f..e071e95ec0 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/search_widget.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/search_widget.html.php @@ -1 +1 @@ -renderBlock('form_widget_single_control', array('type' => isset($type) ? $type : "search")) ?> +renderBlock('form_widget_simple', array('type' => isset($type) ? $type : "search")) ?> diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/time_widget.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/time_widget.html.php index 8d34459b56..fb7f94c3eb 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/time_widget.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/time_widget.html.php @@ -1,5 +1,5 @@ - renderBlock('form_widget_single_control'); ?> + renderBlock('form_widget_simple'); ?>
renderBlock('widget_container_attributes') ?>> renderBlock('form_widget_single_control', array('type' => isset($type) ? $type : "url")) ?> +renderBlock('form_widget_simple', array('type' => isset($type) ? $type : "url")) ?> diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/FormTable/form_errors.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/FormTable/form_errors.html.php index 5149209e35..154b6e2c02 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/FormTable/form_errors.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/FormTable/form_errors.html.php @@ -1,4 +1,4 @@ - +
    diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/views/FormTable/form_row.html.php b/src/Symfony/Bundle/FrameworkBundle/Resources/views/FormTable/form_row.html.php index 5526a03fe9..03daaf19fc 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/views/FormTable/form_row.html.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/views/FormTable/form_row.html.php @@ -3,7 +3,7 @@ label($form, isset($label) ? $label : null) ?> - + errors($form) ?> widget($form) ?> diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Templating/Helper/Resources/Parent/form_widget_single_control.html.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Templating/Helper/Resources/Parent/form_widget_simple.html.php similarity index 100% rename from src/Symfony/Bundle/FrameworkBundle/Tests/Templating/Helper/Resources/Parent/form_widget_single_control.html.php rename to src/Symfony/Bundle/FrameworkBundle/Tests/Templating/Helper/Resources/Parent/form_widget_simple.html.php diff --git a/src/Symfony/Component/Form/CHANGELOG.md b/src/Symfony/Component/Form/CHANGELOG.md index e35e565cf1..2d0e527291 100644 --- a/src/Symfony/Component/Form/CHANGELOG.md +++ b/src/Symfony/Component/Form/CHANGELOG.md @@ -55,9 +55,10 @@ CHANGELOG by event subscribers * simplified CSRF protection and removed the csrf type * deprecated FieldType and merged it into FormType + * added new option "compound" that lets you switch between field and form behavior * [BC BREAK] renamed theme blocks * "field_*" to "form_*" - * "field_widget" to "form_widget_single_control" + * "field_widget" to "form_widget_simple" * "widget_choice_options" to "choice_widget_options" * "generic_label" to "form_label" * added theme blocks "form_widget_compound", "choice_widget_expanded" and diff --git a/src/Symfony/Component/Form/Extension/Core/Type/CheckboxType.php b/src/Symfony/Component/Form/Extension/Core/Type/CheckboxType.php index 519fe6b3af..678ee4068a 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/CheckboxType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/CheckboxType.php @@ -51,9 +51,9 @@ class CheckboxType extends AbstractType }; $resolver->setDefaults(array( - 'value' => '1', - 'empty_data' => $emptyData, - 'single_control' => true, + 'value' => '1', + 'empty_data' => $emptyData, + 'compound' => false, )); } diff --git a/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php b/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php index 30b9fef68d..d6846210b5 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php @@ -150,8 +150,8 @@ class ChoiceType extends AbstractType return $emptyValue; }; - $singleControl = function (Options $options) { - return !$options['expanded']; + $compound = function (Options $options) { + return $options['expanded']; }; $resolver->setDefaults(array( @@ -163,7 +163,7 @@ class ChoiceType extends AbstractType 'empty_data' => $emptyData, 'empty_value' => $emptyValue, 'error_bubbling' => false, - 'single_control' => $singleControl, + 'compound' => $compound, )); $resolver->setFilters(array( diff --git a/src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php b/src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php index 45fba08b54..35c645dc36 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php @@ -130,8 +130,8 @@ class DateTimeType extends AbstractType */ public function setDefaultOptions(OptionsResolverInterface $resolver) { - $singleControl = function (Options $options) { - return $options['widget'] === 'single_text'; + $compound = function (Options $options) { + return $options['widget'] !== 'single_text'; }; $resolver->setDefaults(array( @@ -162,7 +162,7 @@ class DateTimeType extends AbstractType // representation is not \DateTime, but an array, we need to unset // this option. 'data_class' => null, - 'single_control' => $singleControl, + 'compound' => $compound, )); $resolver->setAllowedValues(array( diff --git a/src/Symfony/Component/Form/Extension/Core/Type/DateType.php b/src/Symfony/Component/Form/Extension/Core/Type/DateType.php index bf26fd6b10..a28a6421c5 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/DateType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/DateType.php @@ -165,8 +165,8 @@ class DateType extends AbstractType */ public function setDefaultOptions(OptionsResolverInterface $resolver) { - $singleControl = function (Options $options) { - return $options['widget'] === 'single_text'; + $compound = function (Options $options) { + return $options['widget'] !== 'single_text'; }; $resolver->setDefaults(array( @@ -188,7 +188,7 @@ class DateType extends AbstractType // representation is not \DateTime, but an array, we need to unset // this option. 'data_class' => null, - 'single_control' => $singleControl, + 'compound' => $compound, )); $resolver->setAllowedValues(array( diff --git a/src/Symfony/Component/Form/Extension/Core/Type/FileType.php b/src/Symfony/Component/Form/Extension/Core/Type/FileType.php index 527c320fcf..69926fb698 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/FileType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/FileType.php @@ -45,7 +45,7 @@ class FileType extends AbstractType public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( - 'single_control' => true, + 'compound' => false, )); } diff --git a/src/Symfony/Component/Form/Extension/Core/Type/FormType.php b/src/Symfony/Component/Form/Extension/Core/Type/FormType.php index 9ea205c981..b5e57c51d7 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/FormType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/FormType.php @@ -107,7 +107,7 @@ class FormType extends AbstractType 'multipart' => false, 'attr' => $options['attr'], 'label_attr' => $options['label_attr'], - 'single_control' => $options['single_control'], + 'compound' => $options['compound'], 'types' => $types, 'translation_domain' => $options['translation_domain'], )); @@ -170,7 +170,7 @@ class FormType extends AbstractType // For any form that is not represented by a single HTML control, // errors should bubble up by default $errorBubbling = function (Options $options) { - return !$options['single_control']; + return $options['compound']; }; // BC clause: former property_path=false now equals mapped=false @@ -196,7 +196,7 @@ class FormType extends AbstractType 'attr' => array(), 'label_attr' => array(), 'virtual' => false, - 'single_control' => false, + 'compound' => true, 'translation_domain' => 'messages', )); diff --git a/src/Symfony/Component/Form/Extension/Core/Type/HiddenType.php b/src/Symfony/Component/Form/Extension/Core/Type/HiddenType.php index 27e59a155f..fc1533648b 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/HiddenType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/HiddenType.php @@ -26,7 +26,7 @@ class HiddenType extends AbstractType 'required' => false, // Pass errors to the parent 'error_bubbling' => true, - 'single_control' => true, + 'compound' => false, )); } diff --git a/src/Symfony/Component/Form/Extension/Core/Type/IntegerType.php b/src/Symfony/Component/Form/Extension/Core/Type/IntegerType.php index 76ad3e3332..c3ab0546da 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/IntegerType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/IntegerType.php @@ -38,11 +38,11 @@ class IntegerType extends AbstractType { $resolver->setDefaults(array( // default precision is locale specific (usually around 3) - 'precision' => null, - 'grouping' => false, + 'precision' => null, + 'grouping' => false, // Integer cast rounds towards 0, so do the same when displaying fractions - 'rounding_mode' => \NumberFormatter::ROUND_DOWN, - 'single_control' => true, + 'rounding_mode' => \NumberFormatter::ROUND_DOWN, + 'compound' => false, )); $resolver->setAllowedValues(array( diff --git a/src/Symfony/Component/Form/Extension/Core/Type/MoneyType.php b/src/Symfony/Component/Form/Extension/Core/Type/MoneyType.php index ad480db17f..8d4f414ad2 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/MoneyType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/MoneyType.php @@ -51,11 +51,11 @@ class MoneyType extends AbstractType public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( - 'precision' => 2, - 'grouping' => false, - 'divisor' => 1, - 'currency' => 'EUR', - 'single_control' => true, + 'precision' => 2, + 'grouping' => false, + 'divisor' => 1, + 'currency' => 'EUR', + 'compound' => false, )); } diff --git a/src/Symfony/Component/Form/Extension/Core/Type/NumberType.php b/src/Symfony/Component/Form/Extension/Core/Type/NumberType.php index d87f3a681f..93a3d9824e 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/NumberType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/NumberType.php @@ -37,10 +37,10 @@ class NumberType extends AbstractType { $resolver->setDefaults(array( // default precision is locale specific (usually around 3) - 'precision' => null, - 'grouping' => false, - 'rounding_mode' => \NumberFormatter::ROUND_HALFUP, - 'single_control' => true, + 'precision' => null, + 'grouping' => false, + 'rounding_mode' => \NumberFormatter::ROUND_HALFUP, + 'compound' => false, )); $resolver->setAllowedValues(array( diff --git a/src/Symfony/Component/Form/Extension/Core/Type/PercentType.php b/src/Symfony/Component/Form/Extension/Core/Type/PercentType.php index 06320bf9ee..52ca820e93 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/PercentType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/PercentType.php @@ -32,9 +32,9 @@ class PercentType extends AbstractType public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( - 'precision' => 0, - 'type' => 'fractional', - 'single_control' => true, + 'precision' => 0, + 'type' => 'fractional', + 'compound' => false, )); $resolver->setAllowedValues(array( diff --git a/src/Symfony/Component/Form/Extension/Core/Type/TextType.php b/src/Symfony/Component/Form/Extension/Core/Type/TextType.php index d6d86aa4e0..5b68169b8f 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/TextType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/TextType.php @@ -34,7 +34,7 @@ class TextType extends AbstractType public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( - 'single_control' => true, + 'compound' => false, )); } diff --git a/src/Symfony/Component/Form/Extension/Core/Type/TimeType.php b/src/Symfony/Component/Form/Extension/Core/Type/TimeType.php index 768dd34988..02bdca38c1 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/TimeType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/TimeType.php @@ -130,8 +130,8 @@ class TimeType extends AbstractType */ public function setDefaultOptions(OptionsResolverInterface $resolver) { - $singleControl = function (Options $options) { - return $options['widget'] === 'single_text'; + $compound = function (Options $options) { + return $options['widget'] !== 'single_text'; }; $emptyValueFilter = function (Options $options, $emptyValue) { @@ -168,7 +168,7 @@ class TimeType extends AbstractType // representation is not \DateTime, but an array, we need to unset // this option. 'data_class' => null, - 'single_control' => $singleControl, + 'compound' => $compound, )); $resolver->setFilters(array( diff --git a/src/Symfony/Component/Form/Extension/Csrf/EventListener/CsrfValidationListener.php b/src/Symfony/Component/Form/Extension/Csrf/EventListener/CsrfValidationListener.php index 6c9df41392..a440dcd6a7 100644 --- a/src/Symfony/Component/Form/Extension/Csrf/EventListener/CsrfValidationListener.php +++ b/src/Symfony/Component/Form/Extension/Csrf/EventListener/CsrfValidationListener.php @@ -63,7 +63,7 @@ class CsrfValidationListener implements EventSubscriberInterface $form = $event->getForm(); $data = $event->getData(); - if ($form->isRoot() && !$form->getConfig()->getOption('single_control')) { + if ($form->isRoot() && $form->getConfig()->getOption('compound')) { if (!isset($data[$this->fieldName]) || !$this->csrfProvider->isCsrfTokenValid($this->intention, $data[$this->fieldName])) { $form->addError(new FormError('The CSRF token is invalid. Please try to resubmit the form')); } diff --git a/src/Symfony/Component/Form/Extension/Csrf/Type/FormTypeCsrfExtension.php b/src/Symfony/Component/Form/Extension/Csrf/Type/FormTypeCsrfExtension.php index 59b79e0ff1..3e7aaa196c 100644 --- a/src/Symfony/Component/Form/Extension/Csrf/Type/FormTypeCsrfExtension.php +++ b/src/Symfony/Component/Form/Extension/Csrf/Type/FormTypeCsrfExtension.php @@ -61,7 +61,7 @@ class FormTypeCsrfExtension extends AbstractTypeExtension */ public function finishView(FormViewInterface $view, FormInterface $form, array $options) { - if ($options['csrf_protection'] && !$view->hasParent() && !$options['single_control']) { + if ($options['csrf_protection'] && !$view->hasParent() && $options['compound']) { $factory = $form->getConfig()->getAttribute('csrf_factory'); $data = $options['csrf_provider']->generateCsrfToken($options['intention']); diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/Type/FormTypeTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/Type/FormTypeTest.php index 79546e42ac..8953def510 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/Type/FormTypeTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/Type/FormTypeTest.php @@ -529,19 +529,19 @@ class FormTypeTest extends TypeTestCase $this->assertFalse($view->isRendered()); } - public function testErrorBubblingIfNoSingleControl() + public function testErrorBubblingIfCompound() { $form = $this->factory->create('form', null, array( - 'single_control' => false, + 'compound' => true, )); $this->assertTrue($form->getErrorBubbling()); } - public function testNoErrorBubblingIfSingleControl() + public function testNoErrorBubblingIfNotCompound() { $form = $this->factory->create('form', null, array( - 'single_control' => true, + 'compound' => false, )); $this->assertFalse($form->getErrorBubbling()); @@ -550,7 +550,7 @@ class FormTypeTest extends TypeTestCase public function testOverrideErrorBubbling() { $form = $this->factory->create('form', null, array( - 'single_control' => true, + 'compound' => false, 'error_bubbling' => true, )); diff --git a/src/Symfony/Component/Form/Tests/Extension/Csrf/Type/FormTypeCsrfExtensionTest.php b/src/Symfony/Component/Form/Tests/Extension/Csrf/Type/FormTypeCsrfExtensionTest.php index 56c55c79e3..8470d20753 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Csrf/Type/FormTypeCsrfExtensionTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Csrf/Type/FormTypeCsrfExtensionTest.php @@ -56,26 +56,26 @@ class FormTypeCsrfExtensionTest extends TypeTestCase )); } - public function testCsrfProtectionByDefaultIfRootAndNotSingleControl() + public function testCsrfProtectionByDefaultIfRootAndCompound() { $view = $this->factory ->create('form', null, array( 'csrf_field_name' => 'csrf', - 'single_control' => false, + 'compound' => true, )) ->createView(); $this->assertTrue($view->has('csrf')); } - public function testNoCsrfProtectionByDefaultIfNotSingleControlButNotRoot() + public function testNoCsrfProtectionByDefaultIfCompoundButNotRoot() { $view = $this->factory ->createNamedBuilder('root', 'form') ->add($this->factory ->createNamedBuilder('form', 'form', null, array( 'csrf_field_name' => 'csrf', - 'single_control' => false, + 'compound' => true, )) ) ->getForm() @@ -85,12 +85,12 @@ class FormTypeCsrfExtensionTest extends TypeTestCase $this->assertFalse($view->has('csrf')); } - public function testNoCsrfProtectionByDefaultIfRootButSingleControl() + public function testNoCsrfProtectionByDefaultIfRootButNotCompound() { $view = $this->factory ->create('form', null, array( 'csrf_field_name' => 'csrf', - 'single_control' => true, + 'compound' => false, )) ->createView(); @@ -103,7 +103,7 @@ class FormTypeCsrfExtensionTest extends TypeTestCase ->create('form', null, array( 'csrf_field_name' => 'csrf', 'csrf_protection' => false, - 'single_control' => false, + 'compound' => true, )) ->createView(); @@ -122,7 +122,7 @@ class FormTypeCsrfExtensionTest extends TypeTestCase 'csrf_field_name' => 'csrf', 'csrf_provider' => $this->csrfProvider, 'intention' => '%INTENTION%', - 'single_control' => false, + 'compound' => true, )) ->createView(); @@ -140,7 +140,7 @@ class FormTypeCsrfExtensionTest extends TypeTestCase /** * @dataProvider provideBoolean */ - public function testValidateTokenOnBindIfRootAndNotSingleControl($valid) + public function testValidateTokenOnBindIfRootAndCompound($valid) { $this->csrfProvider->expects($this->once()) ->method('isCsrfTokenValid') @@ -152,7 +152,7 @@ class FormTypeCsrfExtensionTest extends TypeTestCase 'csrf_field_name' => 'csrf', 'csrf_provider' => $this->csrfProvider, 'intention' => '%INTENTION%', - 'single_control' => false, + 'compound' => true, )); $form->bind(array( @@ -167,7 +167,7 @@ class FormTypeCsrfExtensionTest extends TypeTestCase $this->assertSame($valid, $form->isValid()); } - public function testFailIfRootAndNotSingleControlAndTokenMissing() + public function testFailIfRootAndCompoundAndTokenMissing() { $this->csrfProvider->expects($this->never()) ->method('isCsrfTokenValid'); @@ -177,7 +177,7 @@ class FormTypeCsrfExtensionTest extends TypeTestCase 'csrf_field_name' => 'csrf', 'csrf_provider' => $this->csrfProvider, 'intention' => '%INTENTION%', - 'single_control' => false, + 'compound' => true, )); $form->bind(array( @@ -192,7 +192,7 @@ class FormTypeCsrfExtensionTest extends TypeTestCase $this->assertFalse($form->isValid()); } - public function testDontValidateTokenIfNotSingleControlButNoRoot() + public function testDontValidateTokenIfCompoundButNoRoot() { $this->csrfProvider->expects($this->never()) ->method('isCsrfTokenValid'); @@ -204,7 +204,7 @@ class FormTypeCsrfExtensionTest extends TypeTestCase 'csrf_field_name' => 'csrf', 'csrf_provider' => $this->csrfProvider, 'intention' => '%INTENTION%', - 'single_control' => false, + 'compound' => true, )) ) ->getForm() @@ -216,7 +216,7 @@ class FormTypeCsrfExtensionTest extends TypeTestCase )); } - public function testDontValidateTokenIfRootButSingleControl() + public function testDontValidateTokenIfRootButNotCompound() { $this->csrfProvider->expects($this->never()) ->method('isCsrfTokenValid'); @@ -226,7 +226,7 @@ class FormTypeCsrfExtensionTest extends TypeTestCase 'csrf_field_name' => 'csrf', 'csrf_provider' => $this->csrfProvider, 'intention' => '%INTENTION%', - 'single_control' => true, + 'compound' => false, )); $form->bind(array(